更新:這不再超越RestKit v0.10.x.看@ moonwave99的答案。
找到解決方案!
我最終做了一些非常類似於moonwave的建議,除了我現在將空對象更改爲空數組。
- (void)objectLoader:(RKObjectLoader*)loader willMapData:(inout id *)mappableData {
id events = [*mappableData objectForKey:@"events"];
if (events == [NSNull null]) {
NSLog(@"it's null");
[*mappableData setObject:@"" forKey:@"events"];
}
}
要成功處理現在爲空的非空數組,我必須告訴事件映射忽略未知的鍵路徑。
[eventsMapping setIgnoreUnknownKeyPaths:YES];
的不是調用didFailWithError委託方法現在,RestKit調用didLoadObjects就像我預期/希望所有一起。從那裏我可以檢查數組是否爲空,然後嘗試分配給我的本地Cocoa對象。
- (void)objectLoader:(RKObjectLoader*)objectLoader didLoadObjects:(NSArray*)objects {
if ([objects count] == 0) {
// No events, alert user
}
else if ([[objects objectAtIndex:0] isKindOfClass:[Events class]]) {
Events *events = [objects objectAtIndex:0];
}