2011-10-05 65 views
1

我讀文件,像這樣:如何將數據追加到NSKeyedArchive?

NSData *data = [NSData dataWithContentsOfFile:myPath]; 

NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; 


NSData *imgData = [unarchiver decodeObjectForKey:@"myimage"]; 

if (imgData != nil) { 
    self.image = [[NSImage alloc]initWithData:imgData]; 
}else{ 
    self.image = nil; 
} 

[unarchiver finishDecoding]; 
[unarchiver release]; 

我希望做的是附加的圖像數據的關鍵@「MYIMAGE」到同一個文件,如果它不存在。

如何去呢?

回答

2

看來,沒有辦法「追加」到NSKeyedArchive,所以我只是重新創建它與額外的數據添加並寫在原始文件。

+0

是的。沒有方法提供追加。如果數據足夠大,可能值得使用一個好的'unix文件寫入/寫入 - 或使用數據庫。 – wcochran

-1
NSString *archivePath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"any name"]; 
[NSKeyedArchiver archiveRootObject:your object(example:singletonDataObjectref) toFile:archivePath]; 
+0

相當不同的是,添加一些註釋來解釋你的代碼是一種很好的形式,它有一些小細節,它*不能解決OP提出的問題。 – Marco