Можно ли надежно открыть И отредактировать архив NSKeyedArchiver?

StackOverflow https://stackoverflow.com/questions/1876673

Вопрос

Я использую что-то вроде приведенного ниже кода для сохранения NSDictionary объектов на устройстве.Есть ли способ открыть этот архив, перейти к элементам словаря, которые он содержит, и, в идеале, редактировать данные?Я предполагаю, что нет, ненадежно, поскольку оптимизация, выполняемая при сохранении, затрудняет архивирование interpret...at по крайней мере, это выглядит так при открытии с помощью чего-то вроде Редактор списка свойств.Например, если некоторые из моих объектов используют похожую NSString, оказывается, что указанная NSString архивируется только один раз...изменение структуры NSDictionary по сравнению с тем, что я ожидал.

- (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;
}
Это было полезно?

Решение

Настоящий вопрос заключается в том, "должны ли вы?" ...вероятно, нет.

Конечно, вы могли бы проанализировать формат файла, но этот формат является деталью реализации, которая мог бы меняйся, и это просто не стоит того.

Почему ты пытаешься это сделать?Вы пытаетесь вносить инкрементные правки в стиле Core Data + sqlite?Решил бы вашу проблему просто старый sqlite сам по себе?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top