美文网首页
iOS持久化方式有哪些

iOS持久化方式有哪些

作者: 崔盛希 | 来源:发表于2018-06-01 15:06 被阅读35次

首先这里的持久化指的是数据持久化,目前客户端的持久化也只有这一个含义。
为何要持久化:iOS开发可以没有持久化,持久化更多的是业务需求;比如记录用户是否登陆,下次进应用不需要再登陆。
因为iOS的沙盒机制,所以持久化分为两类:沙盒内和沙盒外。

沙盒内
NSKeyedArchiver
只要遵循了NSCoding协议并正确实现了initWithCoder和encodeWithCoder方法的类都可以通过NSKeyedArchiver来序列化。
归档使用archiveRootObject,解归档使用unarchiveObjectWithFile;需要指定文件路径。

NSUserDefaults
[NSUserDefaults standardUserDefaults]获取NSUserDefaults对象,以key-value方式进行持久化操作。

plist
写入使用writeToFile,读取使用xxxWithContentsOfFile;需要指定文件路径。

数据库
数据库无疑是大量数据最好的持久化方案,数据库目前有:sqlite、CoreData和Realm等。这里就不用回答FMDB它只是封装了sqlite而已。

文件
这里要和plist区分一下,plist方式是字典/数组数据格式写入文件;而这里的文件方式不限数据格式。

沙盒外
KeyChain
沙盒内的方式在应用被删除后数据都会丢失,如果想要不丢失则需要使用KeyChain。
KeyChain本质是一个sqlite数据库,其保存的所有数据都是加密过的。
KeyChain分为私有和公有,公有则需要指定group,一个group中的应用可以共享此KeyChain。
使用KeyChain过程中要理解下面几个问题:

1:自己使用的KeyChain和系统自带的KeyChain数据是隔离的,内部应该是不同数据库文件;
2:KeyChain数据可备份到iCloud中;
3:不需要联网,也不用登陆iCloud账号;一个设备一个sqlite数据库,但是不同应用组不共享数据;
4:要在另一台设备上使用当前设备存储的KeyChain信息,需要当前设备进行数据备份,
再在另一设备上复原数据;比较常用的是iCloud备份方式;
5:系统自带的KeyChain中账号密码分类数据可在系统设置->账号与密码里面看到,
你退出iCloud账号还是存在,只是iCloud会帮你备份如果你设置了的话;这个和照片是一样的道理。

相关文章

  • iOS 近期使用

    2018 iOS 面试题大全 1、iOS 应用导航模式有哪些? 2、iOS 中持久化方式有哪些? 3、iOS 单元...

  • 2018 iOS 面试题大全

    这个栏目将持续更新--请iOS的小伙伴关注! 1、iOS 应用导航模式有哪些?2、iOS 中持久化方式有哪些?3、...

  • # iOS基础 # 持久化方式学习整理

    iOS持久化方式 有哪些1、NSUserDefaults2、NSKeyedArchiver3、沙盒Document...

  • iOS-数据库本地存储简介

    iOS有一道经典的面试题:数据的持久化存储有哪些方式? 标准答案:常见的持久化存储方法有NSUserDefault...

  • iOS-持久化存储技术选型

    iOS有一道经典的面试题:数据的持久化存储有哪些方式?标准答案:常见的持久化存储方法有NSUserDefaults...

  • iOS | 面试- 数据持久化

    iOS | 面试知识整理 - 数据持久化(八) 1. iOS中数据持久化方案有哪些? NSUserDefault简...

  • iOS持久化方式有哪些

    首先这里的持久化指的是数据持久化,目前客户端的持久化也只有这一个含义。为何要持久化:iOS开发可以没有持久化,持久...

  • iOS 本地存储, 无需再写SQL语句 <封装 FMDB&

    iOS,本地存储 SwpFMDB iOS本地持久化储存方式 iOS本地持久化储存方式,常用几种方式: NSUser...

  • 牛客网 iOS 题 90-106

    牛客网 iOS 题 90-106 90.iOS 中持久化方式有哪些? 属性列表文件 对象归档 SQLite 数据库...

  • 【iOS】总结

    iOS中持久化方式有哪些? NSUserDefaults 的存储,实际是本地生成一个 plist 文件,将所需属性...

网友评论

      本文标题:iOS持久化方式有哪些

      本文链接:https://www.haomeiwen.com/subject/ekhksftx.html