我試圖使用鍵控歸檔類的第一次,我沒有最後斷言在這個簡單的測試(的OCUnit):解開使用encodeRootObject存檔的內容的正確方法是什麼?
- (void) testNSCoding
{
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:5];
[dict setObject:@"hello" forKey:@"testKey"];
NSMutableData* data = [NSMutableData data];
NSKeyedArchiver *ba = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[ba encodeRootObject:dict];
[ba finishEncoding];
STAssertTrue(data.length != 0, @"Archiver gave us nothing.");
NSKeyedUnarchiver *bua = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
id decodedEntity = [bua decodeObjectForKey:@"root"];
[bua finishDecoding];
STAssertNotNil(decodedEntity, @"Unarchiver gave us nothing.");
}
我已經證實,歸檔的歸檔,我假設問題存在於非存檔中。 根據Archives and Serializations Guide我相信或許我在使用Unarchiver的過程中遇到了一些問題?
謝謝!
對不起,沒有通過,我不想要字符串「你好」,我試圖讓字典。要回答你的問題,上面的鏈接頁面的底部說:如果你想定製先前使用archiveRootObject:toFile創建的檔案的解除歸檔過程,你可以使用decodeObjectForKey:和鍵「root」來標識存檔。 – 2011-05-09 04:49:28
感謝NSUserDefaults上的提示。這個測試適用於我正在寫的一個更復雜的酸洗子系統。 NSUserDefaults是不夠的。 – 2011-05-09 04:50:51
好吧,但是你沒有使用'archiveRootObject:toFile:',是嗎? – Yuji 2011-05-09 04:58:02