iphone - NSKeyedUnarchiver - 删除解码数据?

标签 iphone nskeyedarchiver

我无法得到之前(相关)问题的任何答复,所以我想知道稍微解释一下是否会有帮助。

我正在使用 NSKeyedArchiver 对一些复杂的对象进行编码并将其保存到磁盘。比如说 -

Class member {
    int *id;
    NSString *name;
    NSMutableArray *array;
    TempClass *object;
}

我试图构建的功能是让用户能够在创建新成员时保存他的工作,并稍后再返回。当用户完成后,他点击发布,数据将被传输到网络服务。如果没有,他只需单击“保存”并离开屏幕,数据就会被保留,以便当用户回来时应用程序可以从该点恢复。现在,一旦我将数据发布到网络服务,我就不想再将数据保留在磁盘中,而且我真的找不到删除它的方法。

现在,我的编码和解码类运行良好。我可以使用 NSKeyedArchiver 将数据保存到磁盘并使用 NSKeyedUnarchiver 检索数据。但是,我的问题是,如何删除不再需要的数据?我必须手动删除磁盘上的文件吗?有没有办法让 NSKeyedUnarchiver 删除它返回的数据?

谢谢,
泰贾。

最佳答案

发布数据后以编程方式删除它的非常简单的方法:

- (BOOL) deleteFile:(NSString *) pathOfFileToDelete error:(NSError *)err {
    BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath: pathOfFileToDelete];
    if(exists) { 
        [[NSFileManager defaultManager]removeItemAtPath: pathOfFileToDelete error:err];
    }
    return exists;
}

关于iphone - NSKeyedUnarchiver - 删除解码数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321196/

相关文章:

iphone - 没有带有 UIAlertViewStylePlainTextInput 的键盘?

ios - NSKeyedUnarchiver 不会返回数据

ios - encodeWithCoder 内部发生崩溃 : on replacementObjectForKeyedArchiver: method

iphone - 单例不会从应用程序委托(delegate)持久化到另一个 View Controller 中

iphone - ios7 中的 Tesseract 集成

iOS 应用程序在 iPhone 上崩溃,即使它在模拟器上运行

iphone - 验证自动续订订阅的收据

iphone - __dyld_dyld 应用程序启动时出现 fatal error

ios - 通过 KeyChain 保存和检索值

iphone - 如何持久化和加载一个符合NSCoding协议(protocol)的对象?