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允许用同一个主键保存重复的条目?
这很奇怪,我明白这个主键属性可以避免这个问题.
从最新的 RESTKit 版本 (0.23.2) 开始,您可以像这样定义主键:
[_mapping addAttributeMappingsFromDictionary:@{ @"id" : @"objectId", @"name" : @"name" }];
[_mapping setIdentificationAttributes:@[ @"objectId" ]];
Run Code Online (Sandbox Code Playgroud)
而 objectId 是核心数据对象的主键。