Recently, I'm learning about NSKeyedArchiver and NSKeyedUnarchiver. I found that there are three ways to archive an array and I'm trying to figure out the differences.
1.Using archiveRootObject:toFile:
[NSKeyedArchiver archiveRootObject:testArray toFile:filePath];
2.Get data from archivedDataWithRootObject:
and write it to file
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
[data writeToFile:filePath atomically:YES];
3.Using encodeObject: to get data
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:testArray forKey:@"testArray"];
[archiver finishEncoding];
[data writeToFile:path atomically:YES];
After testing, I found that all ways above work fine and write same content to file.
Q1: What's the differences with all the ways above?
Q2: Can I use NSData in the 3rd way?