Gần đây, tôi đang tìm hiểu về NSKeyedArchiver và NSKeyedUnarchiver. Tôi thấy rằng có ba cách để lưu trữ một mảng và tôi đang cố gắng tìm ra sự khác biệt.Sự khác biệt với archiveRootObject: toFile: và writeToFile:
1.Sử dụng archiveRootObject:toFile:
[NSKeyedArchiver archiveRootObject:testArray toFile:filePath];
dữ liệu 2.Get từ archivedDataWithRootObject:
và ghi nó vào tập tin
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
[data writeToFile:filePath atomically:YES];
3.Using encodeObject: để có được dữ liệu
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:testArray forKey:@"testArray"];
[archiver finishEncoding];
[data writeToFile:path atomically:YES];
Sau khi thử nghiệm, tôi thấy rằng tất cả các cách ở trên hoạt động tốt và ghi cùng một nội dung để nộp.
Q1: Sự khác biệt với tất cả các cách ở trên là gì?
Q2: Tôi có thể sử dụng NSData theo cách thứ 3 không?