【问题标题】:Reading the value of a "settings bundle" simple value读取“设置包”简单值的值
【发布时间】:2012-10-25 14:04:53
【问题描述】:

我在设置包中有一个非常简单的设置。它只是用拨动开关设置的 TRUE 或 FALSE 值。基于此,我的应用程序是否应该显示一个按钮。很简单。

但是当我读取值时,我得到一个空值。我知道它设置正确,因为我可以在设置应用中看到它。

这是我读取值的方式

myButton.hidden = ![[NSUserDefaults standardUserDefaults] boolForKey:@"my key"];

我把那行放在 viewDidLoad 中,放在 applicationDidFinishLaunching 中,什么都没有!我一直为空。

您的帮助将不胜感激。

【问题讨论】:

    标签: ios settings nsuserdefaults key-value


    【解决方案1】:

    请注意,如果用户没有触及设置并且您没有为您的设置值提供任何默认值(在代码中),它们将返回为 null...如果您想设置“实际”默认值(所以当你打电话给他们你会得到一些价值)设置你必须做的事情(你应该检查它们是否已经被设置)..

    NSMutableDictionary *d=[[NSMutableDictionary alloc] init];
        //set the values for d
        NSDictionary *dict = [NSDictionary dictionaryWithDictionary:d];
        [[NSUserDefaults standardUserDefaults] registerDefaults:dict];
        [d release];
    

    希望对你有帮助

    【讨论】:

    • 我们如何检查他们之前是否没有设置过?
    • 你应该只设置一次,而且真的只有一次。如果他们中的任何一个给你返回 nil,那么你就知道它没有被设置
    • 我刚刚意识到这是在本地应用程序域中设置/读取首选项,而不是在设置应用程序中设置的全局域中。你如何改变这种行为?
    猜你喜欢
    • 2016-09-28
    • 2018-04-30
    • 1970-01-01
    • 2011-07-06
    • 2013-03-25
    • 2017-09-27
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    相关资源
    最近更新 更多