我有一个iOS应用程序,它使用Restkit从服务器提取信息。我已经达到了使用多个CoreData实体的程度。我为restkit设置了一个新的实体映射,但是我从服务器的响应导致没有可映射的值,因为它使用了错误的实体映射。有人可以告诉我如何告诉它使用哪一个。
以下是两位地图制作者:
RKEntityMapping *articleEntityMapping = [RKEntityMapping mappingForEntityForName:@"Gist" inManagedObjectStore:managedObjectStore];
[entityMapping addAttributeMappingsFromDictionary:@{
@"id.text": @"gistID",
@"title.text": @"title",
@"hashtags.text": @"hashtags",
@"imageUrl.text": @"imageUrl",
@"description.text": @"summary",
@"copy.text": @"fullArticle",
@"articleId.text": @"articleId"}];
entityMapping.identificationAttributes = @[ @"gistID" ];
RKEntityMapping *userEntityMapping = [RKEntityMapping mappingForEntityForName:@"UserInfo" inManagedObjectStore:managedObjectStore];
[userEntityMapping addAttributeMappingsFromDictionary:@{
@"firstName.text": @"firstName",
@"lastName.text": @"lastName",
@"birthDay.text": @"birthDay",
@"birthMonth.text": @"birthMonth",
@"birthYear.text": @"birthYear"}];
userEntityMapping.identificationAttributes = @[ @"birthDay" ];
我认为identificationAttributes
给了它提示但它似乎没有用。这两个实体之间没有关系。它们来自服务器端完全不相关的API。
以下是我用于发出使用articleEntityMapping
[[RKObjectManager sharedManager] postObject:nil path:@"/rest/search?ip=255.255.255.0" parameters:search success:nil failure:nil];
以下是我使用userEntityMapping
应该使用但不使用的请求。
[[RKObjectManager sharedManager] postObject:nil path:@"/rest/person/login?ip=255.255.255.0" parameters:postBody success:nil failure:nil];
答案 0 :(得分:0)
您的映射只是故事的一半,另一半是响应描述符。虽然映射告诉RestKit如何转换接收的数据,但响应描述符告诉RestKit何时适合使用映射。这是通过路径模式和关键路径参数的组合来完成的。路径模式再次匹配用于获取数据的URL,因此您需要设置它。