ios - Xcode如何调试发送到实例的无法识别的选择器

标签 ios objective-c xcode debugging

好的,据我所知,当我调用一个旨在将 View 放入其正确框内的 setter 时,我遇到了错误。

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

在 layoutIfNeeded 上我得到这个错误

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000000343'

现在,我在整个应用程序中都有类似的代码,并且运行良好。我在 -[NSObject(NSObject) doesNotRecognizeSelector:] 处放置了一个符号断点。但这并没有真正的帮助。我仍然无法判断它正在尝试调用哪个对象。 containerView 是一个简单的 UIView。该实例始终为 0xb000000000000343,不确定这是否重要,但看起来很重要。我该如何调试这个问题?

最佳答案

可能会发生以下两种情况之一:

  1. 正如 rmaddy 所指出的,您可能已将 NSNumber 分配给不是 NSNumber 的属性。 NSString 似乎是符合 UILayoutSupport 的候选者或对象。

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

关于ios - Xcode如何调试发送到实例的无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34889759/

相关文章:

ios - NSObjectNotAvailableException - 无法连接到 SimulatorBridge

ios - 1.0 秒后 CAKeyframeAnimation 关键时间未执行

iOS 内存管理,(泄漏,保留周期)

ios - CalDAV 比 .ics 文件同步日历更快?

iPhone自定义委托(delegate)问题

objective-c - 类方法,其中 self 如果在 block 中使用

ios - Xcode 关闭控制台输出中的自动布局相关警告

ios - 即将到期的内部分发配置文件和证书

objective-c - 为什么按钮不能在动画中移动?

ios - 将 PList 信息传递给字符串,然后传递给可变数组 (iOS)