2012-06-01 53 views
2

在0.10.0之前,'Error'和'errors'消息'與RestKit一起工作'。我在0.10.0中看到,您可以爲錯誤映射設置rootKeyPath。如何設置RestKit 0.10.0以識別'錯誤'和'錯誤'消息?

objectManager.mappingProvider.errorMapping.rootKeyPath = @"errors"; 

但是,我只能將它設置爲錯誤異或錯誤。對我來說,這似乎是一個迴歸。我錯過了什麼?

回答

0

在0.10.0 RestKit添加了只嘗試,如果狀態代碼爲4XX或者5XX,但它們映射到錯誤映射響應中的錯誤上下文只允許一個頂級關鍵路徑(據我所知)。因此我無法映射'錯誤'和'錯誤'。我試圖解決這個問題,而無需修改restkit但我不得不修改一條線,你可以在我的分支看到 https://github.com/stevemoser/RestKit/tree/fix-errors-context 後來,當我安裝我的錯誤映射它看起來像這樣:

#import <RestKit/RKErrorMessage.h> 
#import <RestKit/RKObjectMappingProvider+Contexts.h> 

[objectManager.mappingProvider setErrorMapping:nil]; 
[objectManager.mappingProvider setValue:[NSMutableDictionary dictionary] forContext:RKObjectMappingProviderContextErrors]; 
RKObjectMapping* errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]]; 
[errorMapping mapKeyPath:@"" toAttribute:@"errorMessage"]; 
[objectManager.mappingProvider setMapping:errorMapping forKeyPath:@"error" context:RKObjectMappingProviderContextErrors]; 
[objectManager.mappingProvider setMapping:errorMapping forKeyPath:@"errors" context:RKObjectMappingProviderContextErrors]; 
2

這是我必須要管理的錯誤:

#import <RestKit/RKErrorMessage.h> 

... 

//configure error manager 
RKObjectMapping *errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]]; 
[errorMapping mapKeyPath:@"message" toAttribute:@"errorMessage"]; 
[objectManager.mappingProvider setErrorMapping:errorMapping]; 
+0

它的工作原理,謝謝! –