NSKeyedArchiver是否会覆盖以前的存档值?

时间:2016-01-24 15:31:55

标签: ios nskeyedarchiver nskeyedunarchiver

我使用以下方法进行IOS App数据备份

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

基于此处的Apple文档 -

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

问题

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

以下是删除NSKeyedArchiver值的有用参考

1 个答案:

答案 0 :(得分:2)

NSKeyedArchiver 不对覆盖上一个对象负责。它只是将 youObject 转换为 NSData ,反之亦然。因为,'自定义对象'无法保存到 NSUserDefaults

另外,要覆盖数据,你应该这样做.i.e

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

删除数据:

[[NSUserDefaults standardUserDefaults] removeObjectForKey:identifier];
[[NSUserDefaults standardUserDefaults] synchronize];