ios - 更新数据库时核心数据关系中断 - Restkit

标签 ios core-data mapping restkit restkit-0.20

我有两个实体“父”和“子”。父实体与子实体具有一对多关系,子实体与父实体具有一对一关系,“父”实体具有我每次映射的唯一 ID(主键属性)。

当我调用 API 时,响应是这样的

{
    "parent": {
        "ss": "1",
        "uid": 200,
        "me": "Successfully Retrieved",
        "pn": 2,
        "cl": [
            {
                "cid": 1500,
                "cn": "XYZ"
            },
            {
                "cid": 1501,
                "cn": "ABC"
            }
        ]
    }
}

以上响应已成功映射到数据库。我可以通过 [parent.childs allObjects] 访问它返回两个对象。

我有一个加载更多功能,它调用相同的 api 和页码递增 1,并且我得到与上面类似的响应(3 个对象)。但是当我尝试从数据库获取数据时,我只得到最新响应的 3 个对象。我之前映射的两个对象的关系变为空。所以我无法访问所有对象。我如何通过关系访问数据库中的所有数据。

这就是我的映射方式

RKObjectManager *manager = [[RestKit sharedDataManager] objectManager];
        RKEntityMapping *parentMapping = [[MFResponseMapper sharedInstance]parentMapper]; //Primary key is mapping here
        RKEntityMapping *childMapping = [[MFResponseMapper sharedInstance]childMapper]; //Child name and Id is mapping here.

        [parentMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"cl"
                                                                                    toKeyPath:@"childs"
                                                                                  withMapping:childMapping]];


        RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:parentMapping
                                                                                       pathPattern:nil
                                                                                           keyPath:@"parent"
                                                                                       statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];

        [manager addResponseDescriptor:responseDescriptor];

注意:我有模型中父子(一对多)关系的删除规则。

谢谢

最佳答案

在关系映射上,将 assignmentPolicy 设置为 RKUnionAssignmentPolicy

关于ios - 更新数据库时核心数据关系中断 - Restkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18865470/

相关文章:

ios - 如何切换 UIFont 的粗体和斜体

ios - 未针对iOS 13( objective-c )调用didRegisterForRemoteNotificationsWithDeviceToken

ios - 核心数据 NSFetchRequest setResultType :NSDictionaryResultType not working

iPhone 核心数据 : Sort with umlauts

java - 如何使用 Dozer 将 List<MyObject> 映射到 List<HashMap<String,Object>>?

ios - 在 UIViewController 之间共享 View ?第二个 viewController "steals"从第一个 View 开始?

ios - 无法在 swift 2 中显示外部资源文件夹中的 jpeg

ios - 图像的核心数据性能问题

mapping - 关于与核函数和支持向量机相关的术语的具体查询

json - 颠簸变换 OMH 映射到 FHIR