2

我正在使用以下内容进行IOS App数据备份

  • NSKeyedArchiver.archiveRootObject()
  • NSKeyedUnarchiver.unarchiveObjectWithFile()

基于此处的 Apple 文档 -

我在这里很好奇一个可能很愚蠢的问题 - 每次进行新保存时都会删除以前的存档吗?

问题

  • 调用 NSKeyedArchiver.archiveRootObject() 时,新存档是否会覆盖以前的存档值?
  • 如果它不覆盖旧值,您是否需要删除旧值?

这是删除 NSKeyedArchiver 值的有用参考

4

1 回答 1

2

NSKeyedArchiver不负责覆盖之前的对象。它只是将youObject转换为NSData,反之亦然。因为,“自定义对象”不能保存到NSUserDefaults

另外,要覆盖数据,您应该这样做。即

 [userDefaults setObject:data forKey:identifier];
 [userDefaults synchronize];

删除数据:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:identifier];
[[NSUserDefaults standardUserDefaults] synchronize];
于 2016-01-24T16:03:02.760 回答