1

我有一个 iPhone 应用程序,它使用NSUserDefault standardUserDefaults.

当我向应用程序添加新功能时,我需要添加新的默认设置,因此我必须迁移/升级NSUserDefaults. 现在,我只存储版本号并在应用程序启动时检查它。它很快变得非常混乱,因为我必须添加很多if语句。我不能假设用户只是从以前的版本升级,甚至可能是之前的几个版本。

我喜欢 CoreData 似乎处理迁移表更改的方式,但我想提供 2.2.1 SDK 兼容性,当然 CoreData 与NSUserDefaults.

有什么建议或最佳实践吗?

4

1 回答 1

3

嗯……我不会以这种方式“升级”用户默认值,而是像往常一样查询 NSUserDefaults,只有在未设置默认值的情况下(在这种情况下 objectForKey 将返回 nil),使用默认值(然后可能是写回用户默认为下次节省时间)。由于每次读取“新”默认值(即 1.0 中不存在的默认值)时都必须执行此操作,因此我建议执行一个包装类/文件来执行此操作,这样代码只编写一次每个“新”默认值。

此外,虽然问题/问题不同,但此答案在您的情况下也同样适用。

于 2010-02-22T13:35:51.390 回答