0

我的目标是用 RestKit 实现一对多和多对一的关系连接。我使用的是 0.20pre6 版本。此页面http://restkit.org/api/0.20.0/Classes/RKConnectionDescription.html#overview报告了一半示例。第一个例子是多对一。json:

{ "project": 
    { "id": 12345, 
      "name": "My Project",
      "userID": 1
    }
}

代码:

NSEntityDescription *projectEntity = [NSEntityDescription entityForName:@"Project" inManagedObjectContext:managedObjectContext];
NSRelationshipDescription *userRelationship = [projectEntity relationshipsByName][@"user"];
RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:userRelationship attributes:@{ @"userID": @"userID" }];

我第一次尝试时错过的事情是 userID 也需要在实体中。否则它将无法正常工作。我真的不明白为什么......无论如何它有效。

我的问题与第二个例子有关,它是一对多的。json示例:

 { "project":
    {   "id": 12345,
        "name": "My Project",
        "userID": 1,
        "teamMemberIDs": [1, 2, 3, 4]
    }
 }

代码:

 NSEntityDescription *projectEntity = [NSEntityDescription entityForName:@"Project" inManagedObjectContext:managedObjectContext];
 NSRelationshipDescription *teamMembers = [projectEntity relationshipsByName][@"teamMembers"]; // To many relationship for the `User` entity
 RKConnectionDescription *connection = [[RKConnectionDescription alloc] initWithRelationship:teamMembers attributes:@{ @"teamMemberIDs": @"userID" }];

现在... teamMemberIDs 需要像前面示例中的 userID 一样位于实体定义中。以下是我的问题:

  1. 我如何定义 teamMemberIDs,因为它是一个值数组?
  2. 有关于这件事的工作示例吗?RestKit 库中的示例目录仅显示嵌套关系。
  3. 我做得对吗?我错过了什么大事吗?
4

1 回答 1

4

我一直在努力解决这个完全相同的问题,但最终能够找到解决方案。希望这会帮助你。

使用示例:

  1. 您必须具有 Project 的 NSArray 属性,即您的 NSManagedObject,您可以将 teamMemberID 映射到其中。为此,您需要创建一个可变形的属性。
  2. 将 teamMemberIDs 映射到该属性,就像您将原语一样。
  3. 就像在示例中所做的那样创建一个 connectionDescription。
于 2013-01-26T09:15:53.897 回答