1.iOS 开发中数据持久性有哪几种?
- NSUserDefaults 通过key - vaule 的方式存储 多用于用户信息存储 往往自己封装一层使用(存量小)
- 文件保存 (图片 、视频、文档),也可以新建 text 记录数据
- plist 、 json 甚至html 、css 写入 读取
- 数据库 SQLite 、FMDB(基于sqlite 封装)、Realm(并不是对
SQLite
或者CoreData
的简单封装, 是由核心数据引擎C++
打造,是拥有独立的数据库存储引擎,可以方便、高效的完成数据库的各种操作,应用体积较大)、CoreData - KeyChain(钥匙串) 其中KeyChain(钥匙串)是保存到沙盒范围以外的地方,也就是与沙盒无关
- MMKV 是基于 mmap 内存映射的移动端通用 key-value 组件
2.IOS 几种导航模式?
- 平铺页面 就像一叠卡片,页面通过滑动切换,通常视觉精美,没有滚屏。这种导航方式主要适用于只有一个主屏的简单应用。
- 标签栏 是我们最常见的导航模式,这类导航的最大优势就是让应用的主要功能一目了然。我们根据应用的功能类型和信息类型进行标签分类,每个标签对应的页面应该有自己独特的功能和内容
- 树形结构 就是将层级信息分类到一颗倒置的树的树枝上,展示起来就像是流程图(类似家谱) 。对于组织大量信息内容,同时又能让每个内容触手可及,树形结构是一个高效的方法。
3.关于浅拷贝 深拷贝问题
1.浅拷贝就是拷贝后,并没有进行真正的复制,而是复制的对象和原对象都指向同一个内存地址
2.深拷贝是真正的复制了一份,复制的对象指向了新的内存地址