【发布时间】:2013-05-20 14:27:52
【问题描述】:
我正在尝试添加到 RestKit 映射的连接,但没有成功。
我的 JSON 如下:
{
parent: {
token: "token"
title: "title",
description: "description",
child_id: 1
}
}
我的 CoreData 方案定义 Parent ManagedObject 在 child 键下有一个 Child 关系(反之亦然)。 Parent 映射发生在我已经在 CoreData 中拥有相应的 Child 对象之后,所以这不是问题。
为了解决这个问题,我关注了网络上的一些链接和讨论,但没有任何效果。这样做的正确方法是什么,而不必将 child_id 属性添加到 Parent (有些人声称他们这样做了,但在我看来这是错误的)。
假设我有这个映射:
- (RKEntityMapping *)parentResponseMapping {
RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:@"Parent" inManagedObjectStore:[self myStore]];
[mapping addAttributeMappingsFromArray:@[@"title", @"description"]];
mapping.identificationAttributes = @[@"token"];
return mapping;
}
起初我尝试像这样添加连接:
NSEntityDescription *parentEntity = [NSEntityDescription entityForName:@"Parent" inManagedObjectContext:[self myContext]];
NSRelationshipDescription *childRelationship = [parentEntity relationshipsByName][@"seller"];
RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:childRelationship keyPath:@"child_id"];
[mapping addConnection:connection];
但是我得到一个错误,child_id 不是一个有效的属性(这是我尝试将child_id 属性添加到我的方案的地方,但同样,这对我来说似乎很乱,此外,它没有工作) .
我还尝试通过以下方式添加连接:
[addConnectionForRelationship:@"child" connectedBy:@"child_id"]
但这也没有用。
这两种方法都忽略子映射。
正确的方法是什么?
编辑:RestKit Object Mapping relationships with foreign keys - 这里已经回答了,但解决方案对我来说看起来很奇怪。这是唯一的方法吗?
【问题讨论】:
标签: ios objective-c restkit foreign-key-relationship one-to-one