在決定在SO中發佈之前,我搜索了一下並查看了大多數核心數據問題。這有點奇怪,我不知道該從哪裏出發。CoreData - 在NSSet上不保存關係或外鍵詳細信息
我正在構建一個iOS應用程序,並且正在使用RestKit,Core Data和Objective Record。在詳細討論細節之前,請注意我的對象上下文和對象存儲對於Objective Record和RKObjectManager是相同的。所以我不是指同一場景以外的對象。足夠的介紹..
Feed_Items模型是層次結構中的第一個模型。
--Feed_Items
------裝備模型(1對1 /可選)
------衣模型(1-T0-1 /可選)
都衣軍團並具有相同的屬性集,我特別感興趣的「意見」屬性
--Clothe /軍團
------其他領域
------ NSSet中*評論對象
當我啓動應用程序,我加載全部採用RestKit(JSON)和對象 - 從服務器獲取最新的飼料映射。在第一次加載時,我只能得到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數據庫中得到更新。請參考下面
圖像爲了進一步證明我的觀點,我想下面我第二次運行
Outfit *_outfit = [[Outfit where:@"outfit_id == 3"] objectAtIndex:0];
NSLog(@"%@", [_outfit.comments allObjects]);
而且只有5個obects
"<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個物體發生了什麼以及它爲什麼沒有連接。它已成功保存在數據庫中,正如您從圖像中看到的一樣,但看起來像關係或外鍵未設置。任何想法出了什麼問題?
乾杯
對於2個請求中的每一個,使用的映射和返回的JSON是什麼? – Wain