nfm*_*nfm 11 cocoa core-data ios restkit
我有两个核心数据实体(Client和UserFile),我已经成功建立了它们之间的关系.
我为两个实体创建了类,并使它们成为子类RKManagedObject.
当我创建一个新的UserFile,我想正确地将它与a关联Client.这是我正在做的事情:
Client *client = [Client objectWithPrimaryKeyValue:@"1"];
UserFile *file = [UserFile object];
file.client = client;
file.clientId = client.clientId;
[[RKObjectManager sharedManager] postObject:file delegate:self];
Run Code Online (Sandbox Code Playgroud)
好像我必须分配,file.clientId以便将正确的参数发送到服务器(如果我只分配,file.client则提交的client_id是空白).
好像我必须分配file.client以防止Client创建一个新的空,并与文件关联(需要客户端关系).
它是否正确?我真的必须同时分配外键和实际实体吗?这对我来说似乎有点多余,但我很高兴地承认我的核心数据和RestKit知识缺乏!
要回答您的问题,您现在看起来确实需要执行这两个步骤.以下是库中包含的RKDiscussionBoardExample的代码:
DBTopic* topic = [[DBTopic findFirstByAttribute:@"topicID" withValue:topicID] retain];
_post = [[DBPost object] retain];
_post.topicID = topic.topicID;
_post.topic = topic;
Run Code Online (Sandbox Code Playgroud)
因此,在示例中没有正确设置关系,或者您确实需要这两个步骤.
此外,您应该使用最新版本的RestKit,它具有不同的对象映射器并弃用RKManagedObject.你的人际关系应该是这样的:
RKManagedObjectMapping* clientMapping = [RKManagedObjectMapping mappingForClass: [Client class]];
clientMapping.primaryKeyAttribute = @"clientID";
[clientMapping mapKeyPathsToAttributes:
@"id", @"clientID",
nil];
RKManagedObjectMapping* userFileMapping = [RKManagedObjectMapping mappingForClass:[UserFile class]];
userFileMapping.primaryKeyAttribute = @"userFileID";
[userFileMapping mapKeyPathsToAttributes:
@"id", @"userFileID",
@"client_id", @"clientID",
nil];
[userFileMapping mapRelationship:@"client" withObjectMapping:clientMapping];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |