RestKit ObjectLoader Нераспознанный селектор пытается сопоставить объекты - PullRequest
1 голос
/ 19 декабря 2011

Эта проблема относится только к RestKit , но я считаю, что основная проблема связана с регистрацией уведомлений. Я мог бы действительно использовать некоторую помощь, чтобы выяснить это ... У меня, кажется, одна и та же проблема, появляющаяся несколько раз:

An NSInvalidArguementException из serviceDidBecomeUnavailableNotification в пределах RKClient. Действие звонит с __NSMallocBlock__, __NSCFString, __NSCFArray, NSURL, и UICFFont ... очевидно, что делегат установлен неправильно.

ТОЛЬКО в моих запросах используется RKObjectMapping для сопоставления ответа с мои модельные классы. Я заметил, что objectLoader имеет isResponseMappable и чеки [self.response isServiceUnavailable] - который тогда отправляет RKServiceDidBecomeUnavailableNotification. это кажется, откуда моя проблема. Единственное место, которое я вижу isResponseMappable вызываемый находится в пределах didFinishLoad:(RKResponse*)response.

Вот пример трассировки стека, я подумал, что это может быть очень полезно:

Error Message: 
NSInvalidArgumentException: -[__NSMallocBlock__ 
serviceDidBecomeUnavailableNotification:]: unrecognized selector sent 
to instance 0xee168b0 

CoreFoundation:2:in `0x37d4dacb -[NSObject doesNotRecognizeSelector:] 
+ 174' 
CoreFoundation:3:in `0x37d4c945 ___forwarding___ + 300' 
CoreFoundation:4:in `0x37ca7680 _CF_forwarding_prep_0 + 48' 
Foundation:5:in `0x31c6f50f __57-[NSNotificationCenter 
addObserver:selector:name:object:]_block_invoke_0 + 18' 
CoreFoundation:6:in `0x37d16577 ___CFXNotificationPost_block_invoke_0 
+ 70' 
CoreFoundation:7:in `0x37ca20cf _CFXNotificationPost + 1406' 
Foundation:8:in `0x31be33fb -[NSNotificationCenter 
postNotificationName:object:userInfo:] + 66' 
Foundation:9:in `0x31be4c2b -[NSNotificationCenter 
postNotificationName:object:] + 30' 
MyApp:10:in `0x000d2157 -[RKObjectLoader isResponseMappable] + 114' 
MyApp:11:in `0x000d2b83 -[RKObjectLoader didFinishLoad:] + 418' 
MyApp:12:in `0x000cb151 -[RKResponse connectionDidFinishLoading:] + 
36' 
Foundation:13:in `0x31ca6c39 __65-[NSURLConnectionInternal 
_withConnectionAndDelegate:onlyActive:]_block_invoke_0 + 16' 
Foundation:14:in `0x31bfe6e9 -[NSURLConnectionInternalConnection 
invokeForDelegate:] + 28' 

Если у кого-нибудь есть какие-либо полезные советы, идеи или предложения о том, как это отладить, было бы очень приветствуем! Я имел дело с этим в течение двух недель, и я только вижу это в развернутых приложениях (не может воспроизвести проблему), поэтому любое понимание лучше, чем ничего! Ура!

Ответы [ 2 ]

0 голосов
/ 09 января 2012

Просто, если все остальные попадут в это решение, я выбрал следующий подход:

Полностью удалить RestKit из моего существующего проекта. Затем я скачал основную ветку RestKit, реинтегрировал в свой проект (там было несколько устаревших методов, менее необходимых фреймворков и переработанных классов, но в целом все довольно просто). Я буду выпускать эту версию с новым RestKit в течение следующей недели или около того, и НАДЕЖДА , чтобы эта проблема не возникла снова. :)

Если у меня возникнет эта проблема, я вернусь и изменю свой ответ, объяснив причину, по которой это все еще происходит.

0 голосов
/ 20 декабря 2011

Проверьте, добавили ли вы все работы с фреймами, рекомендованные для RestKit, в ваш проект

1. **CFNetwork.framework**
1. **CoreData.framework**
1. **MobileCoreServices.framework**
1. **SystemConfiguration.framework**
1. **libxml2.dylib**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...