我有兩個表說論文和作者。每篇文章有許多作者,同一作者可以有多篇文章。我的Json響應看起來像這樣。關係映射Restkit
{
"Articles": [
{
"artName": "ABC",
"artId": "1",
"Authors": [
{
"autName": "James",
"autId": "200",
"email": "[email protected]"
},
{
"autName": "Mark",
"autId": "201",
"email": "[email protected]"
},
{
"autName": "Robert",
"autId": "202",
"email": "[email protected]"
}
]
},
{
"artName": "BCD",
"artId": "2",
"Authors": [
{
"autName": "James",
"autId": "200",
"email": "[email protected]"
},
{
"autName": "Ben",
"autId": "204",
"email": "[email protected]"
},
{
"autName": "Rayon",
"autId": "205",
"email": "[email protected]"
}
]
}
]
}
映射:
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獲取作者時。我只有兩位作者。但是當我嘗試爲「artName」BCD獲取數據時。我得到3位作者。當在DB中檢查時,記錄「James」的關係密鑰被BCD記錄覆蓋。
我如何可以訪問兩個文章的所有作者。
注:我使用Restkit 0.20
謝謝
的關係是多對多的數據模型? – Wain
是的..我使用多對多在DB模式 –