RKConnectionDescription与Restkit 0.20.3不稳定

时间:2014-04-22 15:20:16

标签: mapping restkit rkobjectmapping

我有来自两个不同网络服务的两个实体,这些实体有很多关系。

实体A {   NSString * id,   NSString *详情 }

实体B {    NSString *键,    NSString *值,    NSString *类型,    NSString * foreignId }

我尝试映射实体B:

+ (RKObjectMapping *)mapping { RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:NSStringFromClass([self class]) inManagedObjectStore:[RKObjectManager sharedManager].managedObjectStore];
    [mapping addAttributeMappingsFromDictionary:@{
                                                  @"key": @"key",
                                                  @"id":@"foreignId",
                                                  @"type":@"type",
                                                  @"value":@"value"
                                                  }];

    mapping.identificationAttributes = @[@"featureKey",@"type",@"foreignID"];
    [mapping addConnectionForRelationship:@"homeApplianceDatas" connectedBy:@{@"foreignId":@"id"}];

    return mapping;
}

在我的测试json中,所有类型B的实体都具有相同的foreignID" Car"但只有少数人与A" A"实体(约15%)!!!

任何想法?

1 个答案:

答案 0 :(得分:0)

使用外键映射时,如果找不到目标对象,则可以(可以)进行mo连接。以后不会再次处理该连接。

此外(这可能被认为是RestKit中的错误),任何新的外键映射关系内容替换任何以前的关系内容。没有可用于修改此行为的API(因为存在嵌套关系处理分配策略)。

因此,在许多情况下,您需要自己处理外键信息,以确保所有需要连接的内容实际连接。你可以针对任务政策提出针对RestKit的问题,但第一个问题是你的设计问题。