0

我已经实现了 inappsettings,以便在我的应用程序中有一个首选项视图,以便能够直接在应用程序中编辑settings.bundle值。

但是现在我想从 settings.bundle 中读取,但在阅读iOS 编程指南时我发现 settings.bundle 应该在应用程序启动时读取。

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

Inappsettings 提供方法InAppSettings registerDefaults

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

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

编辑:在我的应用程序中,我有三个视图,一个是仪表板。另一个是选项和邮件视图,以模态方式显示。

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

4

1 回答 1

1

显然,Apple 想要将外部偏好 UI 范式强加给我们。请回想一下 Mail.app 的工作原理。有时这种范式是有道理的,有时则没有。如果您设置了不可变的首选项,则不必考虑处理 onPreferenceChange、并发、同步、操作系统备份和复制问题等的事件……但是 Apple 提供的功能非常有限。你甚至不能在那里输入任意字符串(Mail.app 显然为此使用了一些私有 API)。所以你必须做出选择,是使用 Apple 提供的还是实施自己的偏好系统(可能基于NSUSerDefaults或者其他的东西)。我自己实现了一次,从那以后我就一直在使用它。我更喜欢有一个真正的应用内偏好系统。这样做的主要优点是能够在不离开应用程序的情况下更改其值。

于 2011-04-07T21:04:00.107 回答