iPhone NSUserDefaults的和(iPhone and NSUserDefaults)

2019-07-21 19:47发布

在我viewWillLoad:方法我目前做的东西沿着这些路线:

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

如果我建立和打开偏好设置面板(使用普通Settings.bundle建)之前运行的应用程序,则布尔似乎没有 (或更可能为零 ),而不是默认YES。 但是,如果我打开设置应用程序,查看应用程序偏好设置面板之前,我打开应用程序,按预期工作的一切。

我假定应用程序首选项不被初始化,我要他们初始化为默认值(如果尚未设置)申请委托。 有人可以证实这一点? 还是我失去了别的东西再明显吗?

Answer 1:

你应该提供使用您的代码默认-registerDefaults: 这是一家典型的做法+initialize的任何类使用的设置方法。 请参阅使用NSUserDefaults的 。



Answer 2:

使用初始化方法的工作原理,但我喜欢上这个计算器其他答案有代码读取从包默认值,并使用它们来初始化默认值。 你不必硬编码在代码中的默认设置这样的话,他们是在他们所属的plist中。



文章来源: iPhone and NSUserDefaults