可以在启动时只读取应用程序首选项吗?

时间:2011-04-06 15:41:58

标签: xcode settings.bundle inappsettings

我已实施inappsettings在我的应用中设置偏好设置视图,以便能够直接在应用中修改 settings.bundle 值。

但是现在我想从settings.bundle读取但是阅读iOS programming guide我发现应该在应用程序启动时读取settings.bundle。

因此,我的代码中无法随时访问此首选项吗?如果用户在应用程序运行时无法随时更新首选项,那么Inappsettings就没有任何意义。

Inappsettings提供方法InAppSettings registerDefaults

- (void)initialize{
    if([self class] == [AppDelegate class]){
        [InAppSettings registerDefaults];
    }
}

但我不确定这是否可以随时阅读偏好。有什么建议吗?

在我的应用中

编辑我有三个视图,一个是信息中心。另一个是选项和邮件视图,以模态显示。

在首选项中,用户可以设置我发送消息所需的一些基本内容。因此,当用户刚开始打字并想要改变时,例如在传输网关中,他打开了选项视图,这是一个inappsettings视图,并改变了一些东西。我想在不重新启动应用程序的情况下阅读此更改。

1 个答案:

答案 0 :(得分:1)

显然,Apple希望对我们强加外部偏好UI范例。请回忆一下Mail.app的工作原理。有时这种范式是有道理的,有时则不然。如果您具有不可变的首选项集,则不必考虑事件处理onPrefferenceChange,并发,同步,操作系统备份和复制问题等等。但Apple提供的功能在他们可以做的事情上非常有限。你甚至无法在那里输入任意字符串(Mail.app显然使用了一些私有API)。因此,您必须选择是否可以使用Apple提供的功能或实施您自己的首选项系统(可能基于NSUSerDefaults之类的东西)。我实现了自己的一次,从那时起我就一直使用它。我更喜欢拥有真正的应用内偏好系统。这样做的主要优点是无需离开应用即可更改其价值。