NSUserDefaults中的registerDefaults

1.NSUserDefaults的作用是什么?

NSUserDefaults是一个单例对象,通过[NSUserDefaults standardUserDefaults];获取.
作用简单来说是以键值对的方式将数据在沙盒中实现存取操作.

2.NSUserDefaults中的registerDefaults有什么用?

当使用NSUserDefaults生成的单例对象通过key在沙盒中获取数据时,如果获取不到,则返回null,在某些时刻,就算该key的值不存在,也想返回默认的值,那么就可以使用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的时候,系统并不会将默认值存储到硬盘中,所以当app启动时就要调用一次registerDefaults,故一般将该注册代码写在application:didFinishLaunchingWithOptions中是最合适的

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,746评论 30赞 472
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,212评论 19赞 139
  • 1.正向传值 属性传值在B类中定义属性用于接收A类传来的数据 2.反向传值(回调) 1)利用对象反向传值 将A类对...
    ScaryMonsterLyn阅读 1,517评论 0赞 0
  • 影响因子是评价学术期刊的一项重要指标,曾被认为是学术界的金标准。但近年来由于在学术评价体系中被滥用受到各方人士的强...
    英论阁学术院阅读 9,521评论 0赞 1
  • 我是很随意的人,一个人能玩,一群人也能玩,今年的五一没有心情计划去哪里玩,就一个人背上包,带着相机,自己去这个要呆...
    潇萧肖雪儿阅读 537评论 0赞 2

友情链接更多精彩内容