2013-03-19 67 views
1

安裝程序 - 使用RestKit,以及將數據存儲在CoreData存儲中的功能。restkit - 遇到映射關係......或其他問題

我試圖執行兩個獨立的GET操作:

問題/:issueId ==>這將返回一個發行對象,假設一個具有該ID的存在。 問題/:issueId/comment ==>這將返回Comment對象,屬於問題匹配issueId。

因此,對於第一次通話,這只是一個問題。如果我在URL中傳遞額外的參數,它將只返回評論。否則,它不會。當然,如果我確實要求它,那麼創建對象就好了,並且所有對象都在我的核心數據存儲中正確連接。

,我是映射的對象是這樣的:

@interface Issue : NSManagedObject 
@property (nonatomic) int32_t issueId; 
@property (nonatomic, retain) NSSet* comments; 
// many other fields not shown. 
@end 


@interface Comment: NSManagedObject 
@property (nonatomic) int32_t commentId; 
// many other fields not shown. 
@end 

問題有意見的集合。評論不知道他們擁有的問題。

所以,我想要做的就是讓這兩個調用都存在。

例如,在我們的URL中,說「issueId」是12345.因此,如果我打電話給http://example.com/issue/12345,我想要將數據寫入我的CoreData存儲。 (這很好,順便說一句)。接下來我想要調用「http://example.com/issue/12345/comments」,然後將這些註釋寫入CoreData存儲,並將其連接到問題-12345,這已經在那裏了。這是我遇到麻煩的部分。

如果有人可以提供這方面的指導,我會很感激。

回答

0

在閱讀官方回購的this issue之後,我會繼續如下。

在你的核心數據模型添加的反比關係Comment -> Issue,讓你Comment界面看起來像

@interface Comment: NSManagedObject 
@property (nonatomic, retain) Issue * issue; 
@property (nonatomic) int32_t commentId; 
// many other fields not shown. 
@end 

,使這種關係是強制性的。

現在你必須設置你的映射添加這種關係,例如

[issueMapping addRelationshipMappingWithSourceKeyPath:@"comments" 
               mapping:[self commentMapping]]; 

如果我的理解是正確的,RestKit應該填充這兩個關係(一到多Issue -> Comment及其倒數)爲您服務。