NSUserDefaults类提供了非常方便的方法来获取常用的类型,例如floats,doubles,intergers,Booleans,URLs。所以一个NSUserDefaults的对象必须是属性表,这也就是说我们可以存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例。如果你想存储其他类型的对象,你要将其归档并创建一个NSData来实现存储。
从NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值。例如你使用mutable string做为“MyStringDefault”的值,当你做使用stringForKey:方法获取的值,这个值仍然是不可变的。
NSUserDefaults是单例,同时也是线程安全的。
NSUserDefaults *default = [NSUserDefaultsstandardUserDefaults];
standardUserDefaults返回NSUserDefaults对象。
[defaultobjectForKey:@"IS_CHECKED"]
objectForKey返回对象 integerForKey返回int类型
[tmp setObject:tosaveedString forKey:tosaveedKey];
setObject:保存数据forKey:键值
NSDictionary* defaults = [[NSUserDefaultsstandardUserDefaults]dictionaryRepresentation];
dictionaryRepresentation返回所有元素以字典方式。
保存图片例子:
保存图片数据
UIImage *contactImage =contactImageView.image;
NSData *imageData =UIImageJPEGRepresentation(contactImage,100);
NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];
[defaults setObject:imageData forKey:@"image"];
[defaults synchronize];
读取图片数据
NSUserDefaults *defaults = [NSUserDefaultsstandardUserDefaults];
NSData *imageData = [defaultsdataForKey:@"image"];
UIImage *contactImage = [UIImageimageWithData:imageData];
contactImageView.image = contactImage;