Xcode如何调试发送到实例

时间:2016-01-20 01:03:40

标签: ios objective-c xcode debugging

好的,所以我可以告诉我,当我打电话给一个设计适合视图的setter时,我得到了错误。

_parrentViewFrame = parrentViewFrame;
self.containerView.frame = _parrentViewFrame;
self.containerView.bounds = _parrentViewFrame;
[self.containerView layoutIfNeeded];
layoutIfNeeded上的

我收到此错误

  

***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [__ NSCFNumber长度]:无法识别的选择器发送到实例0xb000000000000343'

现在我在整个应用程序中都有类似的代码,它运行得很好。我在 - [NSObject(NSObject)doesNotRecognizeSelector:] 中添加了一个符号断点。但这并没有真正帮助。我仍然无法分辨它正在尝试呼叫长度的对象。 containerView是一个简单的UIView。该实例始终是 0xb000000000000343 ,不确定这是否有意义,但它似乎是。我该如何调试此问题?

1 个答案:

答案 0 :(得分:1)

可能会发生以下两件事之一:

  1. 正如rmaddy指出的那样,您可能已将NSNumber分配给非NSNumber的媒体资源。 NSString似乎是符合UILayoutSupport的候选人或对象。

  2. 您可能会过度释放一个对象,并且NSNumber取代了该指针,因此选择了错误的选择器。如果是这种情况,您可以启用NSZombies,这将帮助您捕获该过度释放的对象。在诊断程序下的方案设置中启用NSZombies。