2013-03-05 64 views
2

我正在嘗試創建一個RKResponseDescriptor來獲取會話中的人。如何使用帶有ID的RKResponseDescriptor?

我有/會話的響應描述符,但我不知道如何創建它以獲取會話/會話/ 20 /人員(/會話/會話ID /人員)中的人員。

我的會話響應描述符是;

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:sessionsMapping 
                        pathPattern:@"/sessions" 
                         keyPath:nil 
                        statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

會話中的人的響應描述符是;

RKResponseDescriptor *clientInSessionResponseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:clientsInSessionMapping 
                        pathPattern:@"/sessions/:sessionID/people" 
                         keyPath:nil 
                        statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; 

我不斷收到錯誤「失敗,錯誤:沒有響應描述符匹配加載的響應。」

我注意到在文檔中有很多使用:id但似乎無法弄清楚。另外,我應該使用RKPathMatcher構建路徑嗎?

任何幫助將不勝感激。

回答

0

我做的是發送請求路徑時的參數替換。所以在你的情況下,我會做以下事情:

NSString *idValue; // this is the sessionID value 
NSString *path = [@"/sessions/:sessionID/people" stringByReplacingOccurrencesOfString:@":sessionID" withString:idValue]; 
[[RKObjectManager sharedManager] getObjectsAtPath:path parameters:nil success:^(RKObjectRequestOperation *operation,RKMappingResult *mappingResult) 
{ 
    // handle success 
} failure:^(RKObjectRequestOperation *operation, NSError *error) { 
    RKLogError(@"*** RK load FAIL"); 
}] 
相關問題