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;