Kürzlich lerne ich über NSKeyedArchiver und NSKeyedUnarchiver. Ich habe festgestellt, dass es drei Möglichkeiten gibt, ein Array zu archivieren, und ich versuche, die Unterschiede herauszufinden.Unterschiede mit ArchiveRootObject: toFile: und writeToFile:
1.Using archiveRootObject:toFile:
[NSKeyedArchiver archiveRootObject:testArray toFile:filePath];
2.Get Daten aus archivedDataWithRootObject:
und schreiben Sie es
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
[data writeToFile:filePath atomically:YES];
3.Using encodeObject in Datei: erhalten Daten
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:testArray forKey:@"testArray"];
[archiver finishEncoding];
[data writeToFile:path atomically:YES];
Nach dem Testen habe ich festgestellt, dass alle oben genannten Möglichkeiten gut funktionieren und den gleichen Inhalt in die Datei schreiben.
Q1: Was sind die Unterschiede mit allen oben genannten Möglichkeiten?
Q2: Kann ich NSData auf die 3. Art benutzen?