2012-07-02 48 views
0

我发送一个帖子与对象加载器,并在输出窗口中获取此错误。仅供参考,我的didFailWithError:代表从未受到影响。不知道为什么。IOS restkit错误

`objectLoader:didFailWithError:]:` unrecognized selector `sent to class 0x123608` 

我怎么知道什么是0x123608?

我在AppDelegate类中设置路由器,并在AppDelegate中设置Mapping。

这里是我的类中继承RKObjectLoaderDelegate的方法。 我正在使用共享的单身人士。

[[RKObjectManager sharedManager] postObject:review usingBlock:^(RKObjectLoader *loader){  
//  loader.params=params, 
     loader.objectMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[myclass class]]; 
     loader.serializationMIMEType = RKMIMETypeJSON; // We want to send this request as JSON 
     loader.method = RKRequestMethodPOST; 
     loader.serializationMapping = [RKObjectMapping serializationMappingUsingBlock:^(RKObjectMapping* mapping) { 
      [mapping mapAttributes:@"field1", @"field2",@"field3",nil];    
     }]; 
     loader.targetObject = nil; 
     loader.delegate = self; 
    }];  
} 
+0

我想你需要发布代码片段和完整的错误信息才能在这里获得更多的帮助。 – Deepesh

+0

他的问题不需要代码片段。它询问如何找到它是什么对象。 –

回答

0

要设置self为您的代理(loader.delegate = self;),但它似乎你不执行委托方法objectLoader:didFailWithError:和/或不申报,你符合委托协议RKObjectLoaderDelegate
– objectLoader:didFailWithError: required method是在委托中实现的必需方法。

+0

我确实继承了RKObjectLoaderDelegate和ovveride objectLoader:didFailWithError。 – user1302602

0

您正在收到消息didFailWithError:并且您的班级无法识别它。你在班上实施了这种方法吗?至于didFailWithError:未被调用,这是因为你没有实现,或者你没有在正确的类上实现。

0

如果您在RestKit来源看,在文件RKObjectLoader.m,你会看到didFailWithError message有这个代码:

if (!self.isCancelled) 
    { 
     [self informDelegateOfError:error]; 
    } 

当我得到超时错误,它就会以这个if语句和isCancelled设为YES,所以它跳过代码来通知代表。这似乎是RestKit代码中的一个错误。此代码与我以前使用的RestKit版本非常不同。我不知道为什么isCancelledboolean设置为YES,但是如果您注释掉if语句,它将按照预期将错误传递给委托。