Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSKeyedArchiver是否覆盖以前的存档值?_Ios_Nskeyedarchiver_Nskeyedunarchiver - Fatal编程技术网

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

Ios NSKeyedArchiver是否覆盖以前的存档值?,ios,nskeyedarchiver,nskeyedunarchiver,Ios,Nskeyedarchiver,Nskeyedunarchiver,我正在使用以下方法进行IOS应用程序数据备份 NSKeyedArchiver.archiveRootObject() NSKeyedUnarchiver.unarchiveObjectWithFile() 基于这里的苹果文档- 我在这里好奇地问了一个可能很愚蠢的问题——每次进行新的保存时,是否会删除以前的存档 问题 调用NSKeyedArchiver.archiveRootObject()时,新存档是否覆盖以前的存档值 如果没有覆盖旧值,是否需要删除旧值 以下是有关删除NSKeye

我正在使用以下方法进行IOS应用程序数据备份

  • NSKeyedArchiver.archiveRootObject()
  • NSKeyedUnarchiver.unarchiveObjectWithFile()
基于这里的苹果文档-

我在这里好奇地问了一个可能很愚蠢的问题——每次进行新的保存时,是否会删除以前的存档

问题

  • 调用NSKeyedArchiver.archiveRootObject()时,新存档是否覆盖以前的存档值
  • 如果没有覆盖旧值,是否需要删除旧值
以下是有关删除NSKeyedArchiver值的有用参考


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

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

 [userDefaults setObject:data forKey:identifier];
 [userDefaults synchronize];
删除数据:

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

嗯。如果旧值没有被覆盖,我们需要删除它吗?这里有一个链接,回答是肯定的。