Keychain
一般用于安全的存储用户ID密码证书等敏感信息,非通用数据持久化方案。
它不储存在app的沙盒内,所以即使app删除重装依然有效(iOS10之后废除),同一profile下的不同app,可以通过Keychain Access Group访问Keychain信息(支付宝通过淘宝登录)。
它的数据是经过加密的,但支持增删改查和共享(Keychain share)。
沙盒(文件,包括plist)
1、通过文件目录系统直接存储文件(图片视频或其他二进制可转换数据文件等)。
2、plist:只支持数组或字典,关键方法writeToFile。
3、归解档:遵循NSCoding协议的自定义对象obj,实现encode和decode方法,obj归档为文件(archiveRootObject: toFile:),解档(unarchiveObjectWithFile:)
NSUserDefaults
偏好设置。一般用于存储全局环境配置。注意synchronize和取出数据为不可变对象Unmutable。
SQLite3、CoreData
数据库。多用于存储大型数据体系。
网友评论