Possibilità di aprire e modificare in modo affidabile un archivio di NSKeyedArchiver?
-
18-09-2019 - |
Domanda
sto usando qualcosa come il codice qui sotto per salvare un NSDictionary di oggetti al dispositivo. C'è un modo per aprire questo archivio, drill-down nelle voci dizionario che contiene e, idealmente , modificare i dati? La mia ipotesi è no, non in modo affidabile, come l'ottimizzazione fatto quando il risparmio rende l'archivio di difficile interpretazione ... almeno sembra che modo, quando aperto con qualcosa come Property List Editor . Per esempio, se alcuni dei miei oggetti condividono un NSString simile sembra che detto NSString è archiviato solo una volta ... alterare la struttura del NSDictionary da quello che mi aspettavo.
- (BOOL)writeDataToFile {
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:myDictionary forKey:kDataKey];
[archiver encodeInteger:kDataFileVersion forKey:kDataVersionKey];
[archiver finishEncoding];
BOOL success = [data writeToFile:[self dataFilePath] atomically:YES];
[archiver release];
[data release];
return success;
}
Soluzione
La vera domanda è "si dovrebbe?" ... probabilmente no.
Certo, si potrebbe analizzare il formato del file, ma questo formato è un dettaglio di implementazione che potrebbe e il cambiamento non è solo vale la pena.
Perché stai cercando di fare questo? Stai cercando di apportare modifiche incrementali alla Core Data + SQLite? Sarebbe semplicemente vecchio SQLite per sé risolvere il tuo problema?