好的,所以我可以告诉我,当我打电话给一个设计适合视图的setter时,我得到了错误。
_parrentViewFrame = parrentViewFrame;
self.containerView.frame = _parrentViewFrame;
self.containerView.bounds = _parrentViewFrame;
[self.containerView layoutIfNeeded];
layoutIfNeeded上的我收到此错误
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFNumber长度]:无法识别的选择器发送到实例0xb000000000000343'
现在我在整个应用程序中都有类似的代码,它运行得很好。我在 - [NSObject(NSObject)doesNotRecognizeSelector:] 中添加了一个符号断点。但这并没有真正帮助。我仍然无法分辨它正在尝试呼叫长度的对象。 containerView是一个简单的UIView。该实例始终是 0xb000000000000343 ,不确定这是否有意义,但它似乎是。我该如何调试此问题?
答案 0 :(得分:1)
可能会发生以下两件事之一:
正如rmaddy指出的那样,您可能已将NSNumber
分配给非NSNumber
的媒体资源。 NSString
似乎是符合UILayoutSupport
的候选人或对象。
您可能会过度释放一个对象,并且NSNumber
取代了该指针,因此选择了错误的选择器。如果是这种情况,您可以启用NSZombies,这将帮助您捕获该过度释放的对象。在诊断程序下的方案设置中启用NSZombies。