1

我将用户名存储在 CFPreferencesCopyAppValue 中。在 iOS 3.1.3 下,它按预期工作,但在 iOS4 中,它在应用程序打开时存储它,但一旦它关闭(使用多任务关闭能力),变量就不会被存储,即在重新启动应用程序时它为空。

我觉得这可能是多任务处理的问题,因为应用程序的关闭方式与 iOS 3 中的不同,因此不会保存正在关闭的应用程序。

不幸的是,我没有使用最新版本的 SDK,因此它可能会在以后的版本中修复,但我需要该应用程序在 3.1.3 和 4.0 下工作,这是具有 3.1.3 和4.0 无需多次安装。因此,如果它在最终版本上得到修复,我想我必须进行多次安装。

对此事的任何了解都值得赞赏。

4

1 回答 1

1

如果您发布一些有关如何尝试更新值的实际代码,这可能会很有用。根据CFPreferencesCopyAppValue文档:

请注意,此函数返回的值是不可变的,即使您最近使用可变对象设置了该值。

并且Preferences Best Practices文档指定您应该使用CFPreferencesSetAppValue来保存该值。

更新:我怀疑我在你的场景中遗漏了一些东西,也许我下面的答案就是你正在做的事情,因为你确实提到你当前的代码适用于 3.1.3。

如果是这种情况,您可能需要指定在哪个事件上保存值。可能是您在关闭应用程序时更新它,但如果您没有在 plist 中明确指定您不支持暂停,您的应用程序可能只是暂停。

Update2CFPreferencesSetAppValue文档明确提到:

您必须调用该CFPreferencesAppSynchronize函数才能将您的更改保存到永久存储中

于 2010-07-02T04:33:10.523 回答