标签:
// 文件路径 NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"data.plist"]; // 设置数据 NSArray *data = @[@"jack", @10, @"abcd"]; // 储存plist [data writeToFile:path atomically:YES]; // 读取 NSArray *data2 = [NSArray arrayWithContentsOfFile: path];
2. 偏好设置 NSUserDefaults
/* 偏好设置——数据存储 类中有相应属性 */ - (void)save { // 1.利用NSUserDefaults,就能直接访问软件的偏好设置(Library/Preferences) NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // 2.存储数据 [defaults setObject:@"qr" forKey:@"name"]; [defaults setObject:@"123" forKey:@"pwd"]; [defaults setInteger:10 forKey:@"age"]; [defaults setBool:YES forKey:@"auto_login"]; // 3.立刻同步 [defaults synchronize]; }
/* 偏好设置——读取数据 */ - (void)read { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *account = [defaults objectForKey:@"account"]; BOOL autoLogin = [defaults boolForKey:@"auto_login"]; NSLog(@"%@ -- %d", account, autoLogin); }
3. 对象归档 NSKeyedArchiver
/* 归档——存储自定义对象 */ Person *p = [[Person alloc] init]; p.age = 18; p.name = @"qr"; // 拼接文件名 NSString *path = NSTemporaryDirectory() stringByAppendingPathComponent:@"person.data"]; [NSKeyedArchiver archiveRootObject:p toFile:Path]; // 解档 Person *p = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
/* Person 类中要实现的方法 */ // 遵守< NSCoding > 协议 // 什么时候调用:当一个对象要归档的时候就会调用这个方法归档 // 作用:告诉苹果当前对象中哪些属性需要归档 - (void)encodeWithCoder:(NSCoder *)aCoder { [aCoder encodeObject:_name forKey:@"name"]; [aCoder encodeInt:_age forKey:@"age"]; } ———————————————————————————— // 作用:告诉苹果当前对象中哪些属性需要解档 // initWithCoder什么时候调用:只要解析一个文件的时候就会调用 - (id)initWithCoder:(NSCoder *)aDecoder { #warning [super initWithCoder] // 这里不能用[super initWithCoder],什么时候调用[super initWithCoder:aDecoder]:只要父类遵守了NSCoding协议,就调用 if (self = [super init]) { // 解档 // 注意一定要记得给成员属性赋值 _name = [aDecoder decodeObjectForKey:@"name"]; _age = [aDecoder decodeIntForKey:@"age"]; } return self; }
/* 后续给出 */
4. SQLite3
5. Core Data
标签:
原文地址:http://www.cnblogs.com/qinrui/p/4731589.html