SOに投稿することを決定する前に、コアデータの質問のほとんどをグーグルで調べました。ちょっと奇妙で、ここからどこへ行けばいいのかわからない。
私は iOS アプリを構築しており、RestKit、Core Data、および Objective Record を使用しています。詳細に入る前に、目的のレコードと RKObjectManager のオブジェクト コンテキストとオブジェクト ストアが同じであることに注意してください。だから私は同じ文脈の外にあるオブジェクトを参照していません.十分なイントロ..
Feed_Items モデルは、階層の最上位モデルです。
--Feed_Items
------アウトフィットモデル (1対1 / オプション)
------衣装モデル (1-t0-1 / オプション)
服と衣装の両方に同じ属性セットがあり、特に「コメント」属性に興味があります
-- 服装・衣装
------その他の分野
------NSSet* コメント オブジェクト
アプリを起動すると、RestKit(json) と Object-Mapping を使用してサーバーから最新のフィードをすべて読み込みます。最初の読み込みで、衣装であるフィード アイテムを 1 つだけ取得し、その衣装には合計 7 つのコメントがあり、そのうち 5 つが最初に読み込まれます。ここまでは順調で、Feed_Item オブジェクトと対応する Outfit、および NSSet の 5 つのコメントを取得できました。
ユーザーが以前のコメントをすべて読み込みたい場合、別の API を呼び出すと、2 つの新しいコメントが返され、Comment オブジェクトとして正常に解析されます。
[objectManager getObjectsAtPath:[NSString stringWithFormat:@"api/outfit/comments/%d",[_feed.outfit.outfit_id intValue]]
parameters:_params
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
for( Comment* _comment in [mappingResult array]){
[_feed.outfit addCommentsObject:_comment];
[_comment save];
}
}
failure:^(RKObjectRequestOperation *operation, NSError *error) {
}];
例外やエラーはありませんが、最後の 2 つの Comment オブジェクトの外部キーが sqlite データベースで更新されていないと思われます。下の画像をご覧ください
私の主張をさらに証明するために、2回目の実行で以下を試しました
Outfit *_outfit = [[Outfit where:@"outfit_id == 3"] objectAtIndex:0];
NSLog(@"%@", [_outfit.comments allObjects]);
オブジェクトは 5 つしかありません
"<Comment: 0xc185ed0> (entity: Comment; id: 0xc185840 <x-coredata://2C61C98F-0B5F-4111-B681-1E43ABFB33D4/Comment/p6> ; data: <fault>)",
"<Comment: 0xc185c00> (entity: Comment; id: 0xc185820 <x-coredata://2C61C98F-0B5F-4111-B681-1E43ABFB33D4/Comment/p1> ; data: <fault>)",
"<Comment: 0xc185f10> (entity: Comment; id: 0xc185850 <x-coredata://2C61C98F-0B5F-4111-B681-1E43ABFB33D4/Comment/p8> ; data: <fault>)",
"<Comment: 0xc185f70> (entity: Comment; id: 0xc185860 <x-coredata://2C61C98F-0B5F-4111-B681-1E43ABFB33D4/Comment/p9> ; data: <fault>)",
"<Comment: 0xc185e90> (entity: Comment; id: 0xc185830 <x-coredata://2C61C98F-0B5F-4111-B681-1E43ABFB33D4/Comment/p4> ; data: <fault>)"
最後の 2 つのオブジェクトに何が起こったのか、なぜ接続されていないのかはわかりません。画像からわかるようにデータベースに正常に保存されていますが、関係または外部キーが設定されていないようです。何がうまくいかないのですか?
乾杯