iOS 数据存储
2016-09-12 本文已影响19人
张潇潇潇潇潇
苹果的APP呢,和安卓的直接可以文件管理不一样。苹果的每个APP都有一个单独的应用沙盒。想要改写数据呢,就只能在应用沙盒里面读写数据。
应用程序包里面主要操作的三个文件夹:
1.Documents:里面只能放运行时生成的数据。
2.tmp:保存临时数据。
3.library:里面分为两个文件夹:
- 3.1:caches:存储一些下载、缓存的数据;
- 3.2:preferences:存储用户的偏好设置
数据存储的方式:
1.plist存储:可以用来存放数组、字典。是iOS特有的。
-
存:
写入:writeToFile:沙盒路径
-
取:
arrayWithContentsOfFile:沙盒路径 或者是: dictionaryWithContentsOfFile:沙盒路径
2.偏好设置:用什么key存就用什么key取,不能存自定义对象,会报错。不能存空值。
-
存:
NSUserDefaults *userD = [NSUserDefaults standardUserDefaults]; [userD setObject:@"xx"forKey:@"name"]; [userD synchronize];
-
取:
NSString *name = [userD objectForKey:@"name"];
3.归档:用于存放自定义对象
-
存:
1.[NSKeyedArchiver archiveRootObject:对象toFile:沙盒路径];
2.用plist方法搜索目录文件
3.遵守协议<NSCoding>
4.协议方法
- (void)encodeWithCoder:(NSCoder*)aCoder { [aCoder encodeObject:self.name forKey:@"name"]; }
-
取:
- (instancetype)initWithCoder:(NSCoder*)aDecoder { if(self= [superinitWithCoder:aDecoder]) {//如果父类遵守了协议协议 [aDecoderdecodeObjectForKey:@"name"]; } returnself; }