NSUserDefaulnts中可以存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例,同时NSUserDefaults是单例,同时也是线程安全的。
你可以在程序运行的时候从用户默认的数据库中读取程序的设置。同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步。
也可以自定义存储一些NSData,NSUserDefaulnts取出时都是不可变数据,即使你存入的是可变数组,取出时也是不可变的额.
存储自定义的对象
.h
@interfaceMyObject : NSObject
{
NSNumber*lowValue;
NSNumber*highValue;
NSString*titleString;
}
@property(nonatomic, retain)NSNumber*lowValue;
@property(nonatomic, retain)NSNumber*highValue;
@property(nonatomic, retain)NSString*titleString;
.m
- (void)encodeWithCoder:(NSCoder *)encoder
{
[encoder encodeObject:self.lowValue forKey:@"lowValue"];
[encoder encodeObject:self.highValue forKey:@"highValue"];
[encoder encodeObject:self.titleString forKey:@"titleString"];
}- (id)initWithCoder:(NSCoder *)decoder
{if(self =[super init])
{
self.lowValue= [decoder decodeObjectForKey:@"lowValue"];
self.highValue= [decoder decodeObjectForKey:@"highValue"];
self.titleString= [decoder decodeObjectForKey:@"titleString"];
}returnself;
}