我刚刚被一种烦人的东西咬了bug https://stackoverflow.com/questions/913627/uiviewcontroller-viewdidload-not-being-calledObjective-C 中的“向 nil 发送消息即可”行为使这一点变得模糊。
我见过向 nil 发送消息? https://stackoverflow.com/questions/156395/sending-a-message-to-nil,而共识似乎是“这就是我们在 Objective-C 中的发展方式”。
现在,也许我在 Objective-C 方面没有足够的经验,但似乎捕获这个问题会很有用,因为我想不出为什么会发生这种情况的好理由most的时间。然而,这可能只是我还不习惯的编码习惯。
所以除了像这样到处检查 nil 之外:
assert( object != nil );
[object message];
有没有办法让运行时捕获这种情况,并在何时发出警告object
is nil?
你可以使用ObjC 未记录的技巧或 dtrace http://www.friday.com/bbum/2008/01/02/objective-c-logging-messages-to-nil/(请参阅 dtrace 解决方案的评论)。
pid$1::objc_msgSend:entry
/arg0==0/
{
ustack();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)