代码之家  ›  专栏  ›  技术社区  ›  Alasdair Allan

iphone和nsuserdefaults

  •  2
  • Alasdair Allan  · 技术社区  · 15 年前

    在我的 视图加载: 方法我目前正在做以下工作:

    - (void)viewWillAppear:(BOOL)animated {
       NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
       if ( [defaults boolForKey:@"enabled_preference"] ) {
          ...   
       } else {
          ...   
       }
       [super viewWillAppear:animated];
    }
    

    如果我在打开首选项窗格之前构建并运行应用程序(使用普通 集束 )然后胸部看起来 (或者更可能) )而不是违约 . 但是,如果在打开应用程序之前打开“设置”应用程序并查看“应用程序首选项”窗格,则一切都将按预期工作。

    我假设应用程序首选项没有初始化,我应该将它们初始化为应用程序委托中的默认值(如果尚未设置)。有人能证实吗?还是我错过了一些显而易见的东西?

    2 回复  |  直到 12 年前
        1
  •  4
  •   Shehzad Bilal    12 年前

    您应该在代码中使用 -registerDefaults: .这通常是在 +initialize 任何类使用设置的方法。见 Using NSUserDefaults .

        2
  •  3
  •   Community CDub    7 年前

    使用初始化方法是可行的,但我喜欢 this other answer on stackoverflow 它具有从包中读取默认值的代码,并使用这些值初始化默认值。这样,您就不必对代码中的默认设置进行硬编码,它们就位于它们所属的plist中。