9
最近,我正在學習NSKeyedArchiver和NSKeyedUnarchiver。我發現有三種方法來存檔數組,我試圖找出差異。與archiveRootObject的差異:toFile:和writeToFile:
1.使用archiveRootObject:toFile:
[NSKeyedArchiver archiveRootObject:testArray toFile:filePath];
從
archivedDataWithRootObject:
2.註冊數據並將其寫入到文件
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
[data writeToFile:filePath atomically:YES];
3,採用encodeObject:獲取數據
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:testArray forKey:@"testArray"];
[archiver finishEncoding];
[data writeToFile:path atomically:YES];
經過測試,我發現上述所有方法都正常工作,並將相同內容寫入文件。
問題1:上述所有方法有什麼不同?
Q2:我可以在第三種方式使用NSData嗎?