我從WS得到這樣一個JSON文件:Restkit動態映射爲可選屬性
{
...
error=true,
errorMsg="xyz",
errorCode="1234"
}
但這些屬性都是可選的,所以有時它們的存在和有時他們沒有。
我加了一個動態映射只讀取錯誤 - 只有當錯誤被設置爲true
之一:如果錯誤= TRUE
[dynamicMapping addMatcher:[RKObjectMappingMatcher matcherWithKeyPath:@"error" expectedValue:[NSNumber numberWithInt:1] objectMapping:errorMapping]];
或
[dynamicMapping setObjectMappingForRepresentationBlock:^RKObjectMapping *(id representation) {
if ([[representation valueForKey:@"error"] isEqualToNumber:[NSNumber numberWithInt:1]]) {
return errorMapping;
}
return nil;
}];
一切正常但如果錯誤屬性丟失,我會收到警告:
restkit.object_mapping:RKMapperOperation.m:98 Adding mapping error: Could not find an object mapping for keyPath: '<null>'
我只是想擺脫警告。這個問題的最佳做法是什麼?如何將該屬性標記爲可選?
你使用這個和另一個映射嗎? – Wain
嗨,是的,我使用與狀態碼RKStatusCodeClassServerError = 500的服務器錯誤相同的映射(「errorMapping」)。因此,如果服務器上發生錯誤,服務器將以json格式發送錯誤消息。 – jeven
我的意思是你的成功方案如何處理?通常你的動態映射會檢查狀態,然後返回錯誤映射或成功映射。 – Wain