2013-12-03 38 views
0

爲板的另一種RestKit映射問題的JSON數組:RestKit:地圖本地一對多關係到對象ID

局部我有核心數據對象組和消息;一個組有很多消息,並且一個消息可以有多個發送給它的組。我需要將消息的關係映射到組(組),並將其發送到僅發送給組的id(id_number)的JSON數組(group_ids)。從本質上講,我需要我的請求JSON看起來像這樣:

{ 
message:{ 
    ... // Other message data 
    group_ids:[ 
     1208, 
     93, 
     ... 
    ] 
    ... 
} 
} 

衣櫃裏的東西,我拿出那自然不工作是:

RKObjectMapping *messageMapping = [RKObjectMapping requestMapping]; 
[messageMapping addAttributesFromDictionary:@{ @"body":@"body" }]; 

RKObjectMapping *groupIdMapping = [RKObjectMapping requestMapping]; 
[groupIdMapping addPropertyMapping:[RKAttributeMappingFromKeyPath:@"id_number" toKeyPath:nil]; 

[messageMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"groups" toKeyPath:@"group_ids" withMapping:groupIdMapping]; 

不幸的是這會產生的結果在日誌中:

Mapped relationship object from keyPath 'groups' to 'group_ids'. Value: (
    { 
    1208 = {}; 
    } 
) 

這對我有一點意義,但我不知道如何解決這個映射。我希望這是一個我尚未遇到的簡單解決方案。任何幫助是極大的讚賞。

回答

0

對於它的價值,我通過不爲這種特殊情況創建映射來完成此任務,而是僅將參數字典與必需​​的消息數據構造爲傳遞給[RKObjectManager postObject:path:parameters:success:failure]按照我們API的預期工作,但我仍然如果可能的話,對如何完成描述的映射感興趣。

0

嘗試:

[messageMapping addAttributesFromDictionary:@{ @"body":@"body", @"groups.id_number":@"group_ids" }]; 

其中應該有希望使用的keyPath能力創造,如果關係的內容值的數組。