最近,我正在学习 NSKeyedArchiver 和 NSKeyedUnarchiver。我发现有三种方法可以归档数组,我正试图找出差异。
1.使用archiveRootObject:toFile:
[NSKeyedArchiver archiveRootObject:testArray toFile:filePath];
2.从文件中获取数据archivedDataWithRootObject:
并将其写入文件
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];
经过测试,我发现上述所有方法都可以正常工作并将相同的内容写入文件。
Q1:以上所有方式有什么区别?
Q2:我可以以第三种方式使用 NSData 吗?