在决定在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