NSUserDefaults standardUserDefaults不返回结果

时间:2011-06-02 15:46:50

标签: objective-c nsuserdefaults

我创建了一个settings.bundle并添加了一些项目。现在我正试图从我的应用程序中访问它们的值。

我正在使用标准Apple示例:

- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [self setShouldPlaySounds:[defaults boolForKey:@"play_sounds_preference"]]; 
    // Finish app initialization...
}

我已将play_sound_preferences更改为捆绑包中的标识符。当我的应用程序运行时,没有返回错误,但值为0,即使我已将值设置为10.这已得到确认:当我查看设置时,滑块处于10%标记。

我错过了什么吗?

这是实际的代码块:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    searchRadius = [defaults floatForKey:@"SearchRadius"];
    returnResults = [defaults integerForKey:@"RecordReturnCount"];
    // ...
}

1 个答案:

答案 0 :(得分:0)

没有任何其他代码,我只能建议你没有正确设置SearchRadius和RecordReturnCount。他们将遵循:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setFloat: searchRadius forKey: @"SearchRadius"];
[defaults setInteger: returnResults forKey: @"RecordReturnCount"];

我使用过这段时间已经有一段时间但是我不记得那么困难。如果你查看你的首选项,你应该看到com.YOURCOMPANYHERE.YOURPROGRAM.plist - 检查它以查看你可能出错的地方是微不足道的。

编辑:顺便说一下,我从来没有使用过包来初始化设置 - 通常我会有一个名为@“Initialized”的标志 - 如果你访问它并且它返回NO,那么你还没有设置你的用户设置并可以设置它们......一定要将@“Initialized”设置为YES!这将消除对设置包的需求。