2013-02-21 29 views
2

我使用NSUserDefaults来存储一些应用程序设置。将新设置添加到NSUserDefaults

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

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

但很多时候我加入一些新的设置。在这种情况下,isAppFirstLaunch is FALSE,我不能设置任何默认值,所以我必须删除我的应用程序并安装它。

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


正如我unserstand如果我的应用程序是在AppStore

[[[NSBundle mainBundle] infoDictionary]objectForKey:@"CFBundleVersion"]]; 

比我可以存储在我的默认应用程序版本,并检查版本更改设置新的默认值。

但是如何处理调试?我应该总是删除应用程序来清除错误?

+0

这正是[' - [NSUserDefaults registerDefaults:]'](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html# // apple_ref/occ/instm/NSUserDefaults/registerDefaults :)是for。 – 2013-02-21 07:18:59

+0

谢谢,关闭。 – 2013-02-21 07:22:09

回答

1

你可以只检查设置是否已经存在(如果不是NULL不同),如果它不存在,将其设置为默认值。

您可以添加代码到应用程序委托的applicationDidFinishLaunching方法来检查,如果设置为NULL,并且是如此,也比它设置它。为应用程序中的每个设置执行此操作。

+0

不错的答案,我也考虑过,因为我检查应用程序第一次启动。但是所有的默认值都是int,bool和float。这就是为什么floatForKey:或boolForKey:不会返回NULL的原因。 – 2013-02-21 07:16:46

+0

好吧,它会返回零 – byteSlayer 2013-02-21 07:17:32

+0

@george它将返回为零这些类型 – byteSlayer 2013-02-21 07:18:14