我試圖刪除我的應用程序使用NSCoding持續存在的所有文件。似乎它應該是一件簡單的事情,但我找不到答案,而我在這裏只顯示一個類,我有幾個,我希望刪除功能保存所有類的所有實例我的應用程序已存檔。我沒有做任何事情不同,以NSCoder:刪除歸檔NSCoding的文件
所以我的接口定義
Details : NSObject <NSCoding>
我實現了:
- (id)initWithCoder:(NSCoder *)decoder
{
NSLog(@"initWithCoder 'Details'");
if (self = [super init])
{
NSLog(@"Decoding 'Details'");
self.name = [decoder decodeObjectForKey:@"name"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)encoder
{
NSLog(@"Encoding 'Details'");
[encoder encodeObject:self.name forKey:@"name"];
}
當我寫我使用:
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:object];
NSUserDefaults* userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:data forKey:identifier];
我的確開始嘗試查看文檔目錄,但我認爲正如我正在撰寫本文和從我的研究它會被寫入NSUserDefaults(這可能不是最好的)。所以在提出兩個問題的風險中,我該如何刪除所有使用NSCoder保存/存檔到NSUserDefaults的對象(並且可能需要將其設置爲其他內容(即文檔文件夾內的子文件夾...) 。如果是的,我該怎麼做)。
這些數據項有多大?你可能不應該使用'NSUserDefaults'。 – Wain
@不是很大 - 小數據類,大多數可能是5或6個NSString屬性,但有時這些數據類在NSArray中可能是20個左右。猜測NSUserDefaults不會是他們最好的地方嗎? –