0

さまざまなタイプの NSString、Float、NSDATA で構成されるコア データ オブジェクトがあります。

  <Shoplog: 0x9c78d20> (entity: Shoplog; id: 0x9c77050 <x-coredata://828289C5-E1B8-48A6-B2A0-F68B7DF21F2E/Shoplog/p5> ; data: {
    categoryname = Ines;
    comments = nil;
    date = nil;
    email = "iloveyou@gmail.com";
    image = <ffd8ffe0 00104a46 49460001 01000001 00010000 ffe10058 45786966 00004d4d 002a0000 00080002 01120003 00000001 0001>;
    phone = 800;
    price = 9988;
    shop = "";
    websiteurl = "http://www.google.com";
})

問題は、この NSManaged オブジェクトを NSArray または NSDictionary にエクスポートしてファイルに書き込み、別のユーザーにメールで送信し、彼のアプリから開くことです。

したがって、このコードを使用しようとするときはいつでも

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"Shoplog.slog"];
[savedData writeToFile:filePath atomically:YES];

Selected NSManagedObject の大きさに関係なく、135 バイトの非常に小さなファイルが得られ、同じ Size が得られます。

何が間違っているのかを理解するのに助けが必要ですか? 私は1つの解決策について考えます:1- KVCメソッドを使用してNsManagedObjectをNSMutableArrayに転送します

私はまだこの問題に対するよりスマートな解決策があると信じていますが、誰かが助けてくれれば感謝します.

ありがとうございました

4

1 に答える 1

4

次のリンクに回答があります。実装は非常に簡単です 。NSManagedObject グラフをシリアル化 (アーカイブ/アーカイブ解除) する手順に従うだけです。

于 2012-11-05T11:13:24.210 に答える