RestKit主键属性

Sam*_*Sam 7 cocoa json core-data ios restkit

我从json文件加载数据,我保存它.我做了两次......我的Core Data sqlite数据库中有两个条目.即使我在映射中设置了primaryKeyAttribute.

 mapping.primaryKeyAttribute = @"code";
    [mapping mapAttributesFromArray :mappedFields];
    [[RKObjectManager sharedManager].mappingProvider setMapping:mapping forKeyPath:entityName];  
Run Code Online (Sandbox Code Playgroud)

我的Json

{"MyEntity":[{"code":"axv2","data":"content"}]};

这里的回调:

- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {

    NSLog(@"Entries loaded %d",[objects count]);
    lastResult = objects;

    for(MyEntity * myEntity in lastResult) {       
        [self saveContext];       
    }
}
Run Code Online (Sandbox Code Playgroud)

我的实体已正确映射...但Restkit允许用同一个主键保存重复的条目?

这很奇怪,我明白这个主键属性可以避免这个问题.

Ben*_*ten 0

从最新的 RESTKit 版本 (0.23.2) 开始,您可以像这样定义主键:

[_mapping addAttributeMappingsFromDictionary:@{ @"id" : @"objectId", @"name" : @"name" }];
[_mapping setIdentificationAttributes:@[ @"objectId" ]];
Run Code Online (Sandbox Code Playgroud)

而 objectId 是核心数据对象的主键。