2019独角兽企业重金招聘Python工程师标准>>>
今天去面试,被问道NSUserDefaults的存取并手写出来,一时想不起来,回来之后看看之前的笔记,稍作一些整理
NSUserDefaults是一个单例,在整个程序中只有一个实例对象,可以用于数据的永久保存,支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger等系统定义的数据类型,如果要存放自定义的对象,就必须将其转换成NSData存储。 NSUserDefaults单例以 key-value 的形式存储了,存/取数据时可以使用方法 objectForKey 和 setValue:forKey:来把对象存储到相应的 plist 文件中,或者读取。
存储:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@“思思” forKey:@"name"];
[defaults setInteger:10 forKey:@"age"];
UIImage *image =[UIImage imageNamed:@"1.png"];
NSData *imageData = UIImageJPEGRepresentation(image, 100);//把图片转化为NSData
[defaults setObject:imageData forKey:@"image"];
读取
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *name = [defaults objectForKey:@"name"]
NSInteger age = [defaults integerForKey:@"Age"];
NSData *imageData = [defaults dataForKey:@"image"];
UIImage *image = [UIImage imageWithData:imageData];