1

以下のコードのようなものを使用して、オブジェクトのNSDictionaryをデバイスに保存しています。このアーカイブを開き、アーカイブに含まれているディクショナリアイテムにドリルダウンして、理想的にはデータを編集する方法はありますか?保存時に最適化を行うとアーカイブの解釈が難しくなるため、私の推測ではありません。少なくとも、プロパティリストエディタなどで開くと、そのように表示されます。たとえば、私のオブジェクトのいくつかが同様の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;
}
4

1 に答える 1

1

本当の質問は「あなたがすべきか」です。...おそらくそうではありません。

もちろん、ファイル形式を解析することはできますが、その形式は実装の詳細であり、変更される可能性があり、それだけの価値はありません。

なぜあなたはこれをしようとしているのですか?Core Data + sqliteでインクリメンタル編集を行おうとしていますか?単純な古いsqlite自体が問題を解決しますか?

于 2009-12-09T21:21:39.250 に答える