Question

J'utilise quelque chose comme le code ci-dessous pour enregistrer un NSDictionary d'objets à l'appareil. Est-il possible d'ouvrir cette archive, naviguer dans les articles qu'il contient dictionnaire et, idéalement , modifier les données? Je suppose non, pas fiable, comme l'optimisation fait lorsque l'économie rend l'archive difficile à interpréter ... au moins il apparaît de cette façon lors de l'ouverture avec quelque chose comme Property List Editor . Par exemple, si certains de mes objets partagent une NSString similaire, il apparaît que ledit NSString est qu'une fois archivée ... la modification de la structure du NSDictionary de ce que je m'y attendais.

- (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;
}
Était-ce utile?

La solution

La vraie question est « devrait vous? » ... probablement pas.

Bien sûr, vous pouvez analyser le format de fichier, mais ce format est un détail de mise en œuvre que pourraient changement et il est tout simplement pas la peine.

Pourquoi essayez-vous de faire? Essayez-vous de faire des modifications incrémentielles des données d'une base + la sqlite? Est-ce que tout simplement vieux sqlite se résoudre votre problème?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top