iOS NSUserDefaults 中registerDefaults 的使用

  • Post author:
  • Post category:其他



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





中的英文最合适的





版权声明:本文为xueshangzhiying_iOS原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。