2014-04-08 17 views
1

我正在使用以下代碼發佈managedObject。從服務器,我沒有得到任何回報,除了200,所以沒有響應對象的映射。RESKIt:No Response Descriptor

[self.objectManager postObject:invitation path:@"/path" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { 
     NSLog(@"success"); 
    } failure:^(RKObjectRequestOperation *operation, NSError *error) { 
     NSLog(@"Failure"); 
    }]; 

是否有可用於RKResponseDescriptor的虛擬格式?

RKResponseDescriptor *responseDescriptor = nil; //causes a crash 

回答

1

沒有「假」 RKResponseDescriptor情況下,你必須明確定義要RestKit與響應數據做什麼。

您的回覆描述符可能不完整,所以它只映射一個字段以證明事情正在工作。

或者,您可以使用動態映射來讀取傳入數據中的密鑰,並創建一個包含所有密鑰的映射到NSMutableDictionary

這些東西都只對測試非常有用,但可能會對您有所幫助。

如果響應實際上沒有正文數據,並且您只想監視成功,那麼您可以使用AFNetworking代替,或者創建映射到NSMutableDictionary並且沒有密鑰的響應描述符。 RestKit應該選擇它,它應該充當您的目的的「虛擬」。它會創建一個永遠不會使用的字典實例,但您可以忽略它。


RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]]; 

RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping 
                         method:RKRequestMethodPOST 
                        pathPattern:@"/path" 
                         keyPath:nil 
                        statusCodes:[self statusCodeSuccess]]; 
+0

感謝。如果返回的唯一結果是200,我怎樣才能將其映射到它? – user1107173

+1

哦,我看到,沒有響應身體數據 - 那麼你不應該使用RestKit。您應該直接使用AFNetworking(這是RestKit在引擎下使用的)。 – Wain

+0

好吧,在我的大部分電話中,我確實收到了響應數據。但在這種情況下,我不是。如何在AFNetworking上發佈上面的代碼塊? – user1107173