我有一个应用程序在正常使用中运行似乎没有问题。Clang 静态分析器也没有报告任何问题。当我尝试在 Instruments 中运行它时,它会因无法识别的选择器异常而失败。
违规行是表单的简单属性设置器:
self.bar = baz;
为了弄清楚发生了什么,我在其上方添加了一个 NSLog() 调用:
NSLog(@"class = %@ responds = %d", [self class], [self respondsToSelector:@selector(setBar:)]);
self.bar = baz;
在模拟器(没有仪器)和设备上,这正是我所期望的:
类 = Foo 响应 = 1
在 Instruments 下运行时,我得到:
类 = Foo 响应 = 0
我对可能导致这种情况的原因感到困惑。当它在 Instruments 环境中时,可能会占用一个不同的内存位置?谁能建议我如何调试它?