我在我的应用中实现了备份功能。因此,我正在备份UserDefaults源文件,其中所有UserDefaults都保存在以下路径中:
@Component(/*...*/)
class Blabla {
model = {
px: 10
}
onSubmit(event: Event) {
event.preventDefault()
this.px = this.model.px
}
}
当用户恢复备份时,我将该文件替换为备份文件。
问题:该应用继续使用旧的UserDefaults。只有在我重新启动应用程序时才会应用更改。 如何告诉Xcode再次加载源文件?
答案 0 :(得分:1)
您不应该备份plist文件,当然也不应该尝试替换plist文件。 [NS]UserDefaults
碰巧在您应用的沙箱中使用特定的plist文件这一事实是您不应该依赖的实现细节。这可能会在任何未来的iOS更新中发生变化。
使用[NS]UserDefaults
提供的API。
执行备份时,使用dictionaryRepresentation
获取表示内容的字典。然后在备份过程中以任何方式保留此词典。
执行还原时,请加载持久字典。然后使用resetStandardUserDefaults
重置用户默认值,然后使用每个键/值对的set(_:forKey:)
方法将检索到的字典(每个键/值对)存储为用户默认值。