2012-07-02 3 views
0

Я отправляю сообщение с загрузчиком объектов и получаю эту ошибку в окне вывода. FYI, Мой didFailWithError: Делегат никогда не попадал. Не знаю, почему.IOS restkit error

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

Как я узнал, что такое 0x123608?

Я установил маршрутизатор в класс AppDelegate и Mapping в AppDelegate тоже.

вот метод в моем классе, который наследует 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]; 
    } 

Когда я получаю тайм-аута ошибки, он получает к этому, если заявление и isCancelled установлен в YES, поэтому он пропускает код для информирования делегата. Это, по-видимому, ошибка в коде RestKit. Этот код сильно отличается от предыдущей версии RestKit, которую я использовал. Я точно не знаю, почему isCancelledboolean установлен в YES, но если вы закомментируете оператор if, он передаст ошибку делегату, как и ожидалось.

Смежные вопросы