Iphone 删除使用NSCoding存档的文件

Iphone 删除使用NSCoding存档的文件,iphone,objective-c,Iphone,Objective C,我正在尝试删除应用程序使用NSCoding保存的所有文件。似乎这应该是一件简单的事情,但我找不到答案,虽然我在这里只显示了一个类,但我有几个类,我希望删除功能保存我的应用程序已存档的所有类的所有实例。我对NSCoder没有任何不同: 所以我的接口被定义了 Details : NSObject <NSCoding> 当我写它时,我使用: NSData *data = [NSKeyedArchiver archivedDataWithRootObject:object]; NSUser

我正在尝试删除应用程序使用NSCoding保存的所有文件。似乎这应该是一件简单的事情,但我找不到答案,虽然我在这里只显示了一个类,但我有几个类,我希望删除功能保存我的应用程序已存档的所有类的所有实例。我对NSCoder没有任何不同:

所以我的接口被定义了

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];