Recentemente, sto imparando su NSKeyedArchiver e NSKeyedUnarchiver. Ho scoperto che ci sono tre modi per archiviare un array e sto cercando di capire le differenze.Differenze con archiveRootObject: toFile: e writeToFile:
1.Using archiveRootObject:toFile:
[NSKeyedArchiver archiveRootObject:testArray toFile:filePath];
dati 2.Get da archivedDataWithRootObject:
e scrivere su file
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:testArray];
[data writeToFile:filePath atomically:YES];
3.Using encodeObject: per ottenere dati
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:testArray forKey:@"testArray"];
[archiver finishEncoding];
[data writeToFile:path atomically:YES];
Dopo aver provato, ho scoperto che tutti i metodi sopra funzionano perfettamente e scrivono lo stesso contenuto nel file.
Q1: Qual è la differenza con tutte le modalità sopra indicate?
Q2: Posso utilizzare NSData nel 3 ° modo?