1

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

一个NSInvalidArguementException发自 serviceDidBecomeUnavailableNotification内心的RKClient__NSMallocBlock__该操作是从, __NSCFString, __NSCFArray, NSURL, and ...调用的,UICFFont显然委托没有正确设置。

仅在我的请求中RKObjectMapping用于将响应映射到我的模型类。我注意到objectLoaderhas isResponseMappable和 checks [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' 

如果有人对如何调试它有任何有用的提示、想法或建议,将不胜感激!我已经处理了两个星期,并且在部署的应用程序中看到它(无法复制问题),所以任何见解总比没有好!干杯!

4

2 回答 2

0

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

1. **CFNetwork.framework**
1. **CoreData.framework**
1. **MobileCoreServices.framework**
1. **SystemConfiguration.framework**
1. **libxml2.dylib**
于 2011-12-20T13:49:47.533 回答
0

万一其他人落入这个解决方案,我采取的方法是:

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

如果我确实有这个问题,我会回来修改我的答案,说明为什么它仍然会发生。

于 2012-01-08T22:16:05.193 回答