Possível de forma confiável abrir e editar um arquivo de NSKeyedArchiver?
-
18-09-2019 - |
Pergunta
Eu estou usando algo como o código abaixo para salvar um NSDictionary de objetos para o dispositivo. Existe uma maneira para abrir este arquivo, detalhar os itens do dicionário que contém e, idealmente , editar os dados? Meu palpite é não, não confiável, como a otimização feito ao salvar faz com que o arquivo difíceis de interpretar ... pelo menos parece que maneira quando aberto com algo como Property List Editor . Por exemplo, se alguns dos meus objetos compartilham um NSString semelhante parece que disse NSString só é arquivado uma vez ... alterar a estrutura do NSDictionary do que eu estava esperando.
- (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;
}
Solução
A verdadeira questão é "se você?" ... provavelmente não.
Claro, você pode analisar o formato de arquivo, mas esse formato é um detalhe de implementação que poderia mudança e não é apenas a pena.
Por que você está tentando fazer isso? Você está tentando fazer incrementais edições a la Core Data + sqlite? Seria simplesmente sqlite própria velha resolver o seu problema?