Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 向NSUserDefault添加新设置_Ios_Objective C_Nsuserdefaults - Fatal编程技术网

Ios 向NSUserDefault添加新设置

Ios 向NSUserDefault添加新设置,ios,objective-c,nsuserdefaults,Ios,Objective C,Nsuserdefaults,我使用NSUserDefaults存储一些应用程序设置 我需要为我的设置设置一些默认值 因此,我添加了isAppFirstLaunchvalue为默认值,并在应用程序首次启动时将所有需要的默认(初始)值设置为我的设置 但我经常会添加一些新设置。在这种情况下,isAppFirstLaunch为FALSE,我无法为其设置任何默认值,因此我必须删除我的应用程序并重新安装 所以问题是:如何设置新的设置默认值 因为如果我的应用程序在appstore中,我将无法接听 [[[NSBundle mainBun

我使用
NSUserDefaults
存储一些应用程序设置

我需要为我的设置设置一些默认值

因此,我添加了
isAppFirstLaunch
value为默认值,并在应用程序首次启动时将所有需要的默认(初始)值设置为我的设置

但我经常会添加一些新设置。在这种情况下,
isAppFirstLaunch为FALSE
,我无法为其设置任何默认值,因此我必须删除我的应用程序并重新安装

所以问题是:如何设置新的设置默认值


因为如果我的应用程序在appstore中,我将无法接听

[[[NSBundle mainBundle] infoDictionary]objectForKey:@"CFBundleVersion"]];
然后,我可以将应用程序版本存储在我的默认值中,并检查版本是否已更改并设置新的默认值


但是调试怎么办呢?我是否应该始终删除应用程序以清除故障?

您只需检查该设置是否已存在(如果不同于NULL),如果不存在,请将其设置为默认值


您可以将代码添加到应用程序代理的
applicationdFinishLaunching
方法中,该方法检查设置是否为空,并检查设置是否为空。对应用程序中的每个设置都这样做。

回答不错,我在检查应用程序首次启动时也考虑了这个问题。但是所有的默认值都是int、bool和float。这就是为什么floatForKey:或boolforky:不会返回空值的原因。比它返回的值要好nil@george对于这些,它将返回零types@george你可以检查它是否为空,我的意思是floatForKey应该返回float,它怎么可能返回nil,这正是它的用途。