【问题标题】:Relationship Mapping Restkit关系映射 Restkit
【发布时间】:2013-08-03 20:35:09
【问题描述】:

我有两张表,分别是“文章”和“作者”。每篇文章有很多作者,同一作者可以出现在多篇文章中。我的 Json 响应是这样的。

{
    "Articles": [
        {
            "artName": "ABC",
            "artId": "1",
            "Authors": [
                {
                    "autName": "James",
                    "autId": "200",
                    "email": "james@xyz.com"
                },
                {
                    "autName": "Mark",
                    "autId": "201",
                    "email": "mark@xyz.com"
                },
                {
                    "autName": "Robert",
                    "autId": "202",
                    "email": "robert@xyz.com"
                }
            ]
        },
        {
            "artName": "BCD",
            "artId": "2",
            "Authors": [
                {
                    "autName": "James",
                    "autId": "200",
                    "email": "james@xyz.com"
                },
                {
                    "autName": "Ben",
                    "autId": "204",
                    "email": "ben@xyz.com"
                },
                {
                    "autName": "Rayon",
                    "autId": "205",
                    "email": "rayon@xyz.com"
                }
            ]
        }
    ]
}

映射:

 RKObjectManager *manager = [[RestKit sharedDataManager] objectManager];
    RKEntityMapping *ArticleMapping = [RKEntityMapping mappingForEntityForName:@"Articles" inManagedObjectStore:manager.managedObjectStore];
    ArticleMaping.identificationAttributes = @[@"artId"];
   ArticleMaping addAttributeMappingsFromDictionary:@{
     @"artId": @"artId",
  }];


  RKEntityMapping *AuthorMapping = [RKEntityMapping mappingForEntityForName:@"Authors" inManagedObjectStore:manager.managedObjectStore];
    AuthorMapping.identificationAttributes = @[@"autId"];

AuthorMapping addAttributeMappingsFromDictionary:@{
     @"autId": @"autId",
@"autName" : @"autName",
@"email" : @"email"

  }];


[ArticleMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"Authors" toKeyPath:@"Authors" withMapping:AuthorMapping]];

我已经为文章和作者建立了关系。它映射正确,但是当我尝试获取“artName”ABC 的作者时。我只有 2 位作者。但是当我尝试为“artName”BCD 获取数据时。我得到了 3 个作者。在 DB 中签入时,记录“James”的关系键被 BCD 记录覆盖。

如何访问这两篇文章的所有作者。

注意:我使用的是 Restkit 0.20

谢谢

【问题讨论】:

  • 数据模型中的关系是多对多?
  • 是的.. 我在 DB 模型中使用多对多

标签: ios core-data mapping relationship restkit-0.20


【解决方案1】:

两个对象之间的关系需要是多对多的,否则新的赋值会显式地破坏旧的赋值。

创建RKRelationshipMapping 时,请确保将assignmentPolicy 设置为RKUnionAssignmentPolicy。默认为RKSetAssignmentPolicy,这可能会删除现有设置。

【讨论】:

  • 感谢您的回答..会检查它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-17
  • 1970-01-01
  • 2013-06-23
  • 2015-12-10
相关资源
最近更新 更多