iOS 数据存储总结
2017-03-21 本文已影响4人
YY_Lee
iOS系统的沙盒机制:我的理解是每个应用程序在手机中都有一个独立的内存区域,应用只能访问自己内存区域的目录文件,所以应用程序的所有文件和资源都存在自己的沙盒里面;
沙盒目录如下:
"应用程序包"
Documents
Library
Caches
Preferences
Temp
-
应用程序包:这里存放的应用程序的源文件,包括资源文件和可执行文件
-
Documents:iTunes同步设备时,会备份该目录。这里可以保存应用运行时生成的需要持久化的重要的数据,例如游戏应用的游戏存档;
-
Library/Caches:iTunes同步设备不会备份该目录。一般存放体积大不需要备份的数据;
-
Library/Preferences:iOS系统的setting应用会在该目录中查找应用的设置信息,因此此目录通常保存应用的设置信息,iTunes同步会备份该目录;
-
Temp:保存应用运行时的临时数据,数据使用完毕后会被从此目录删除。应用没运行时,系统也可能会清除此目录下的文件。iTunes同步不会备份该目录;
沙盒目录的获取:
-
根目录
NSString *homePath = NSHomeDirectory();
-
应用程序包
NSString *path = [[NSBundle mainBundle] bundlePath];
-
Documents
NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
-
Library/Caches
NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
-
Temp
NSString *temp= NSTemporaryDirectory();
-
Library/Preference
通过NSUserDefault对该目录存取设置信息。
存储方式:
Plist文件(属性列表)
Preference(偏好设置)
NSKeyedArchiver(归档)
SQLite
CoreData