如何在iOS中调用特定的用户默认值



我试图调用一个特定的设置是保存在我的iphone应用程序的设置包。我想做一个if语句基于什么被保存。我在实现文件中的代码看起来像这样:

branchMatch = [[NSString alloc] initWithString:[defaults objectForKey:@"branch"]];

设置文件中的对象只是特定分支的名称。我一直得到SIGABRT错误,但我不知道为什么。

首先,不需要用另一个字符串初始化一个字符串。假设branchMatch是一个NSString*,下面的语句就足够了:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
branchMatch = (NSString*)[defaults objectForKey:@"branch"];

第二,检查objectForKey是否返回一个nil。您的SIGABRT很可能是由于那里有一个nil。

编辑:这些值不存在于集合中,直到用户打开设置并显式更改它们。如果没有找到设置(如nil),则由您提供合理的值。settings bundle中的那些不会自动应用;

是否检查objectForKey调用是否返回nil?

改为:

NSUserDefault* defaults = [NSUserDefauls standardUserDefaults];
NSString* setting = [defaults objectForKey:@"branch"];
if (setting)
    // Do what needed if branch is set
else
    // Do what needed if branch has never been set

经过一番努力,我意识到我需要从委托类而不是ViewController中加载用户默认值。

感谢所有的输入

相关内容

  • 没有找到相关文章

最新更新