知识卡片

四种本地持久化方式的选择依据

专业/工作 · 639.a

内容

iOS 本地持久化按数据复杂度递增分四个台阶:UserDefaults 用键值对存取零散的简单类型 配置(如是否开启音效),底层本质也是写成 Plist 文件,适合小数据量、读写频繁的场景; Plist 文件适合结构固定、以只读为主的配置数据(如省市区列表),也可在沙盒内手动增删改; 归档(NSCoding)先把自定义对象序列化成可写入磁盘的数据,再落盘持久化——它解决的是 “复杂自定义类型怎么变成能存的数据”,而不是持久化本身;数据库(SQLite/CoreData)则用于 数据量大、结构复杂、需要关联查询的场景,CoreData 相比手写 SQL 的优势在于能直接把实体 之间的关系映射为 Swift 类之间的关系,不必自己拼接 SQL 语句维护关联。发散:这条选择链 的驱动因素是”数据关系的复杂度”和”查询能力的需求”,越往后越重,代价是接入和维护成本 也越高,不该为了简单配置项就上数据库。

参考来源

《Swift 4从零到精通iOS开发》第17章《网络与数据存储技术》