NSUserDefaults

NSUserDefaults
1].NSUserDefaults(官方文档)
NAUserDefaults提供了一个和默认的系统交互的编程接口。默认的系统允许app定制化自己的行为去匹配用户的喜好。例如:开发者可以允许用户决定在你开发的app中显示的单元以及文档多久自动保存。app通过在用户的默认数据库中给一些参数分配数值来记录像偏好值。这些参数就是默认值,它们一般用于决定app在启动时的默认状态或者他默认繁荣行为。

在Runtime时,你可以从用户默认的数据库中读取程序的设置。同时NSUserDefaults的缓存避免了在每次读取数据时候都打开用户默认数据库的操作。可以通过调用synchronize方法来使内存中的缓存与用户默认系统进行同步。
好处:
NSUserDefaultsstandardUserDefaults用来记录一下永久保留的数据非常方便,不需要读写文件,而是保留到一个NSDictionary字典里,由系统保存到文件里,系统会保存到该应用下的/Library/Preferences/gongcheng.plist文件中。需要注意的是如果程序意外退出,NSUserDefaultsstandardUserDefaults数据不会被系统写入到该文件,不过可以使用[[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步到文件里,来避免数据的丢失。
注意:(1)NSUserDefaults类提供了非常方便的方法来获取常用的类型,例如 floats,doubles,intergers,Booleans,URLs。所以一个NSUserDefaults的对象必须是属性表,这也就是说 我们可以存储NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary这些实例。如果你想存储其他类 型的对象,你要将其归档并创建一个NSData来实现存储。
(2)从NSUserDefaults返回的值是不可改变的,即便是你在存储的时候使用的是可变的值
(3)NSUserDefaults是单例,同时也是线程安全的。
2].使用
1,NSUserDefaults通常用来保存一些小巧的数据,如用户的用户名密码,或者是用户的使用习惯,如是否自动打开背景音乐等。
2,使用它的原因就是:代码简短,使用方便
3,使用方法如下:

[cpp] view plain copy

  1. -(void)saveToUserDefaults:(NSString*)tosaveedString withKey:(NSString *)tosaveedKey  
  2. {  
  3.     NSUserDefaults * tmp = [NSUserDefaults standardUserDefaults];  
  4.     if (tmp) {  
  5.         [tmp setObject:tosaveedString forKey:tosaveedKey];  
  6.         [tmp synchronize];  
  7.     }  
  8. }  

[cpp] view plain copy

  1. -(NSString )restoreFromUserDefaults:(NSString )key  
  2. {  
  3.     NSString * rtn = nil;  
  4.     NSUserDefaults * tmp = [NSUserDefaults standardUserDefaults];  
  5.     if (tmp) {  
  6.         rtn = [tmp objectForKey:key];  
  7.     }  
  8.     return rtn;  
  9. }  

以上是封装了两个方法,用来存储和取出字符串数据。
保存调用:[self saveToUserDefaults:@”hello” withKey:@”key”];
恢复调用:NSString * text = [self restoreFromUserDefaults:@”key”];
4.NSUserDefaults存储的数据是以文件形式存在的,保存的位置是:\Library\Preferences\

你可能感兴趣的:(编程,APP,文档,开发人员)