李洪强iOS开发之数据存储
iOS应用数据存储的常用方式
NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, NO); NSUserDomainMask 代表从用户文件夹下找,YES 代表展开路径中的波浪字符“~”
NSString *documents = [array objectAtIndex:0]; 在iOS中,只有一个目录跟传入的参数匹配,所以这个集合里面只有一个元素
偏好设置: 不能存储自定义对象,一般存储用户的账号密码信息
1.存入数据
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"itcast" forKey:@"username"];
[defaults setFloat:18.0f forKey:@"text_size"];
[defaults setBool:YES forKey:@"auto_login"];
2.读取数据
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *username = [defaults stringForKey:@"username"];
float textSize = [defaults floatForKey:@"text_size"];
BOOL autoLogin = [defaults boolForKey:@"auto_login"];
[defaults synchornize]; 为了让程序立即写入调用这个方法
NSKeyedArchiver: 需要遵守<NSCoding>协议
实现以下的两个方法
1.存入数据
[NSKeyedArchiver archiveRootObject:array toFile:path];
2.读取数据
[NSKeyedUnarchiver unarchiveObjectWithFile:path];