美文网首页
NSUserDefaults默认值设置方法

NSUserDefaults默认值设置方法

作者: loghm | 来源:发表于2017-04-13 01:23 被阅读255次

今天在项目中使用NSUserDefaults存储一个是否提示更新版本的变量,居然花了挺多时间的,猛然才发现一个NSUserDefaults也有这么多名堂,花点时间记录下来。

我的需求是,需要存储一个是否提示更新版本的变量,这个变量默认值是YES,我需要在弹框的“不再提示”按钮事件中,将它变成NO,达到效果。

首先,在APPdelegate中声明该NSUserDefaults属性,以前我使用的是
<pre> if(![[NSUserDefaults standardUserDefaults] boolForKey:@"Remind"]){
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Remind"];
}
</pre>

但是这里有个问题,当我这样子设置时,我的默认值确实是YES,但是后续我没有办法改变他的值,当我在其他函数中将它变成NO时,我在这里的代码判断中:![[NSUserDefaults standardUserDefaults] 就是为YES,所以每次进入AppDelegate中,都会将这个值设置成YES.

经过搜索和理解,我发现NSUserDefaults有一个设置默认值的方法(汗,现在才发现),就是:registerDefaults: 所以代码改为

<pre>NSDictionary *defaultValues = [NSDictionary dictionaryWithObjectsAndKeys:@YES, @"Remind",nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultValues];
</pre>

这样,因为使用的NSDictionary作为参数,传入的是对象,所以之后的设置值有一些变化,取值没有变化

<pre>
//设置值
[_Defaults setValue:@NO forKey:@"Remind"];
[_Defaults synchronize];
//取值
[_Defaults boolForKey:@"Remind"]);
</pre>

参考博客:http://blog.csdn.net/wide288/article/details/17551665

相关文章

  • NSUserDefaults默认值设置方法

    今天在项目中使用NSUserDefaults存储一个是否提示更新版本的变量,居然花了挺多时间的,猛然才发现一个NS...

  • 基础

    判断是否为空 方法设置默认值

  • iOS必备知识

    1获取系统语言设置 NSUserDefaults *userDefault = [NSUserDefaults s...

  • iOS工作重要知识点大总结

    1获取系统语言设置 NSUserDefaults *userDefault = [NSUserDefaults s...

  • 数据存储

    数据存储 常见存储方法有三种:plist存储、偏好设置(NSUserDefaults)和归档。 属性列表(plis...

  • js setFieldsValue

    1、setState方法,利用FormItem组件的initialValue属性设置默认值: import mom...

  • Day-04

    第一节 NSUserDefaults(偏好设置的存取) 1.NSUserDefaults了解2.NSUserDe...

  • default参数

    在方法中可以个一些参数设置默认值,在调用该方法的时候,有默认值的参数可以不传递参数 func sayHello1(...

  • iOS-NSUserDefaults

    NSUserDefaults 简介: NSUserDefaults用来存储 用户设置 系统配置等一些小的数据。因为...

  • 数据存储 NSUserDefaults

    NSUserDefaults 用户轻量级的NSUserDefaults对象是用来保存,恢复应用程序相关的偏好设置,...

网友评论

      本文标题:NSUserDefaults默认值设置方法

      本文链接:https://www.haomeiwen.com/subject/qubvattx.html