我正在使用以下做IOS App数据备份
- NSKeyedArchiver.archiveRootObject()
- NSKeyedUnarchiver.unarchiveObjectWithFile()
基于此处的 Apple 文档 -
我很好奇这里有一个可能很愚蠢的问题 - 每次您进行新的保存时,以前的存档都会被删除吗?
问题
- 在调用 NSKeyedArchiver.archiveRootObject() 时,新存档是否会覆盖之前的存档值?
- 如果没有覆盖旧值,是否需要删除旧值?
这是删除 NSKeyedArchiver 值的有用引用
Best Answer-推荐答案 strong>
NSKeyedArchiver 不负责覆盖 先前的对象。它只是将 youObject 转换为 NSData ,反之亦然。因为,“自定义对象”无法保存到 NSUserDefaults。
另外,要覆盖数据,您应该这样做。即
[userDefaults setObject:data forKey:identifier];
[userDefaults synchronize];
删除数据:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:identifier];
[[NSUserDefaults standardUserDefaults] synchronize];
关于ios - NSKeyedArchiver 会覆盖以前的存档值吗?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/34977606/
|