NSUserDefaults is a hierarchical persistent interprocess (optionally distributed) key-value store, optimized for storing user settings.翻译大致如下:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];[userDefaults setObject:@"whf" forKey:@"name"];通过上面这两行代码,我们就已经将用户的姓名通过键值对的方式存储到本地了。不需要指定数据的存储位置,一切由系统搞定,我们只需要告诉系统我们要存什么。如果多次存储的是同一个键的值,那么这个键的值是根据最后一次的值定的,也就是说系统是覆盖写,而不是追加写最后返回的是数组。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];NSString *userName = [userDefaults objectForKey:@"name"];这两句就可以从存储器上获得我们要的数据了,如果数据不存在,那么返回的对象就是nil。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; [userDefaults setObject:@"123" forKey:@"name"]; NSString *userName = [userDefaults objectForKey:@"name"]; NSLog(@"%@",userName); NSString *homeDirectory = NSHomeDirectory(); NSLog(@"homeDire --------%@",homeDirectory);运行结果:

根据路径进入沙盒发现,在沙盒的Library/Preferences/目录下发现多出了一个com.itripbuyer.Date-Persistence.plist的plist文件。
打开后发现里面有一个键值对,并且就是我们刚刚操作的数据。于是我猜测,通过我们刚才的两行代码,系统将我们的数据转换成了一个plist文件,这个文件中装载的是一些键值对。
四、灵活巧用
NSUserDefaults 官方给出的用途是存储用户的Setting,但是通过上述操作发现,程序中凡是涉及到键值对的存储,都可以使用NSUserDefaults来实现,即使不是键值对的形式,转换成键值对也要用NSUserDefaults来实现,这样既省时又省力,还能用最简洁的代码换来最稳定的数据持久化操作。
以上就是iOS用两行代码完美解决数据持久化的全部内容,希望本文对大家开发IOS的时候有所帮助。