gpt4 book ai didi

ios - 关系映射 Restkit

转载 作者:行者123 更新时间:2023-11-29 03:43:38 26 4
gpt4 key购买 nike

我有两个表,分别是文章和作者。每篇文章有多个作者,同一作者可以出现在多篇文章中。我的 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 位作者。当在数据库中检查时,记录“James”的关系键被 BCD 记录覆盖。

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

注意:我使用的是 Restkit 0.20

谢谢

最佳答案

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

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

关于ios - 关系映射 Restkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18019157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com