1.NSUserDefaults的作用是什么?
NSUserDefaults
是一个单例对象,通过易于使用的一个API与应用程序的首选项交互;
[NSUserDefaults standardUserDefaults];
要访问应用程序首选项,首先必须获取只想应用程序
NSUserDefaults的的
的引用;
简单来说是以键值对的方式将数据在沙盒中实现存取操作
。
2.NSUserDefaults中的registerDefaults有什么用?
当使用NSUserDefaults的的生成的单例对象通过按键在沙盒中获取数据时
,如果获取不到,则返回空,在某些时刻,就算该键的值不存在,也想返回默认的值,那么就可以使用registerDefaults。
举例:
// 1.创建一个字典
NSDictionary *dict = @{@"name":@"张三"};
// 2.使用NSUserDefaults注册默认值
[[NSUserDefaults standardUserDefaults] registerDefaults:dict];
// 3.通过key取出值,该值为:张三
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"name"]);
// 4.设置name的值为李四
[[NSUserDefaults standardUserDefaults] setObject:@"李四" forKey:@"name"];
// 5.通过key取出值,该值为:李四
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"name"]);
// 6.将name的值移除
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"name"];
// 7.通过key取出值,该值为:张三
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] valueForKey:@"name"]);
总结:
当使用registerDefaults的时候,系统并不会将默认值存储到硬盘中
,所以当应用程序启动时就要调用一次registerDefaults,故一般注册将该写代码在
application:didFinishLaunchingWithOptions
中的英文最合适的