2013-08-19 53 views
0

我有問題讓這個正常工作。用Restkit 0.20發佈字典陣列

我已經映射了我想要注入請求的JSON有效負載的鍵值對,但是最終每個帖子都失敗了。

以下行顯示了我創建reqeust:

RKObjectMapping *requestMapping = [WDMappingProvider createRegInitRequestTicketMapping]; 
    RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:[requestMapping inverseMapping] objectClass:[WDTicketsModel class] rootKeyPath:nil]; 
[registrationManager addRequestDescriptor:requestDescriptor]; 

我然後創建我的道路張貼到,並把數據給我的職務要求:

//Make object from params 
    WDRegistrationInitializeRequestModel *requestModel = [[WDRegistrationInitializeRequestModel alloc] init]; 

    requestModel.eventID = [params objectForKey:@"eventID"]; 
    requestModel.arrayOfTicketDictionaries = [params objectForKey:@"arrayOfTicketDictionaries"]; 

    NSString *postPath = [NSString stringWithFormat:@"api/v1/registrations/initialize?eventid=%@", requestModel.eventID]; 

    //Post the object (aka the interest json payload) 
    [registrationManager postObject:requestModel.arrayOfTicketDictionaries path:postPath parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *result){ ... 

在這一點上,我總是最終在postObject方法的Failure塊中。

我的映射,它是由[WDMappingProvider createRegInitRequestTicketMapping]做看起來是這樣的:

+(RKObjectMapping *)createRegInitRequestTicketMapping 
{ 
    RKObjectMapping *regInitRequestMapping = [RKObjectMapping mappingForClass:[WDTicketsModel class]]; 
    [regInitRequestMapping addAttributeMappingsFromDictionary: 
    @{ 
     @"Quantity" : @"quantity", 
     @"TicketID":@"mainID" 
    }]; 


    return regInitRequestMapping; 
} 

的arrayOfTicketDictionaries看起來是這樣的:

[{"Quantity":1,"TicketID":1604},{"Quantity":1,"TicketID":1605},{"Quantity":1,"TicketID":1606}] 

有什麼想法?

回答

0

我認爲這是因爲你錯過了RKResponseDescriptor部分。嘗試添加這一個:

// Anything in 2xx 
NSIndexSet *statusCodes = 
    RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful); 
RKResponseDescriptor *responseDescriptor = 
    [RKResponseDescriptor 
    responseDescriptorWithMapping:requestMapping 
    method:RKRequestMethodAny 
    pathPattern:nil 
    keyPath:nil 
    statusCodes:statusCodes]; 
[registrationManager addResponseDescriptor: responseDescriptor]; 
+1

你能分享你得到的錯誤嗎?這將有助於找到你的問題。 –