Iphone 删除使用NSCoding存档的文件
我正在尝试删除应用程序使用NSCoding保存的所有文件。似乎这应该是一件简单的事情,但我找不到答案,虽然我在这里只显示了一个类,但我有几个类,我希望删除功能保存我的应用程序已存档的所有类的所有实例。我对NSCoder没有任何不同: 所以我的接口被定义了Iphone 删除使用NSCoding存档的文件,iphone,objective-c,Iphone,Objective C,我正在尝试删除应用程序使用NSCoding保存的所有文件。似乎这应该是一件简单的事情,但我找不到答案,虽然我在这里只显示了一个类,但我有几个类,我希望删除功能保存我的应用程序已存档的所有类的所有实例。我对NSCoder没有任何不同: 所以我的接口被定义了 Details : NSObject <NSCoding> 当我写它时,我使用: NSData *data = [NSKeyedArchiver archivedDataWithRootObject:object]; NSUser
Details : NSObject <NSCoding>
当我写它时,我使用:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:object];
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:data forKey:identifier];
我确实开始尝试查找documents目录,但我认为在我写这篇文章时,以及根据我的研究,它将被写入NSUserDefaults(这可能不是最好的事情)。因此,冒着提出两个问题的风险,我如何删除使用NSCoder保存/存档的所有对象以使用NSSERDEFAULTS(以及是否应该将其设置为其他内容(即文档文件夹中的子文件夹…,如果是,我将如何做).
NSCoding
提供了一种将对象转换为NSData
的方法,以便于存档。之后如何处理这些NSData
对象是您的责任。您可以将它们保存到单个文件中,也可以不保存到单个文件中,但NSCoding
不知道这一点
似乎您一直在使用[userDefaults setObject:data-forKey:identifier];
您需要删除通过执行[userDefaults removeObjectForKey:identifier];
所使用的每个标识符的所有条目。
您无法自动确定这些条目是什么
另外,您可能需要考虑不要占用代码< NSUDER Debug < /代码>,并将它们保存到单个文件中(查看<代码> [NStaseWrutoFoel::/Cuth>)],这将有助于跟踪这些文件是什么(例如,可以将它们放在同一个文件夹/子文件夹中)。.
NSCoding
提供了一种将对象转换为NSData
的方法,以便于存档。之后如何处理这些NSData
对象是您的责任。您可以将它们保存到单个文件中,也可以不保存到单个文件中,但NSCoding
不知道这一点
似乎您一直在使用[userDefaults setObject:data-forKey:identifier];
您需要删除通过执行[userDefaults removeObjectForKey:identifier];
所使用的每个标识符的所有条目。
您无法自动确定这些条目是什么
另外,您可能需要考虑不要占用代码< NSUDER Debug < /代码>,并将它们保存到单个文件中(查看<代码> [NStaseWrutoFoel::/Cuth>)],这将有助于跟踪这些文件是什么(例如,可以将它们放在同一个文件夹/子文件夹中)。.
这些数据项有多大?您可能不应该使用NSUserDefaults
@Wain,而不是大型-小型数据类,大多数可能是5或6个NSString属性,但有时这些数据类在NSArray中可能是20个左右。猜测NSUserDefaults并不是它们的最佳位置?这些数据项有多大?您可能会问不要使用NSUserDefaults
@Wain,不是海量的-小型数据类,大多数可能是5或6个NSString属性,但有时这些数据类在NSArray中可能是20个左右。猜测NSUserDefaults不是最适合它们的地方?
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:object];
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:data forKey:identifier];