RestKit ObjectLoader无法识别的选择器试图映射对象

时间:2011-12-19 19:20:46

标签: iphone objective-c ios restkit unrecognized-selector

此问题特定于 RestKit ,但我认为基本问题与注册通知有关。我真的可以使用一些帮助来解决这个...我似乎有多次出现相同的问题:

来自NSInvalidArguementException serviceDidBecomeUnavailableNotification内的 RKClient 。那个行动 是来自__NSMallocBlock____NSCFString__NSCFArrayNSURL, 和UICFFont ......显然代表没有正确设置。

仅在我的请求中使用RKObjectMapping将响应映射到 我的模特课。我注意到objectLoaderisResponseMappable并检查[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 :(得分:0)

检查您是否在项目中添加了为RestKit推荐的所有框架作品

1. **CFNetwork.framework**
1. **CoreData.framework**
1. **MobileCoreServices.framework**
1. **SystemConfiguration.framework**
1. **libxml2.dylib**

答案 1 :(得分:0)

只是让其他人陷入这个解决方案,我采取的方法是:

完全从我现有的项目中移除RestKit。然后我下载了RestKit的主分支,重新集成到我的项目中(有一些不赞成的方法,不太必要的框架和重构的类,但总的来说非常简单)。我会在接下来的一周左右用新的RestKit发布这个版本,并且 HOPE 不再看到这个问题了。:)

如果我确实有这个问题,我会回来修改我的答案,理由是为什么它仍在发生。