我已经读过,在ObjC中允许向nil发送消息,我知道这是该语言的一部分,并且存在争议,赞成和反对。我不想就任何一个问题展开讨论。
我只是想知道是否有一种方法,总是不得不测试if (presumedInstance != nil)
,在尝试向nil发送消息时我会遇到错误?它在编码时没有帮助我,我没有得到错误 - 更难以确定代码缺陷的位置等。
也许是XCode中的设置或脚本?
答案 0 :(得分:2)
不,没有办法做到这一点。事实上,它是Objective-C的一个非常重要的特性。我实际上认为你进行测试更为重要(if (object)
,这与if (object != nil)
相同)因为它迫使你考虑你的函数和方法的输入和输出,以及应用程序经历的代码路径。一开始可能令人沮丧,但这是你习惯的事情之一,它让生活变得更加轻松。
答案 1 :(得分:0)
尝试断言怎么样,比如NSAssert
?
NSAssert 如果给定条件为假,则生成断言。
用法:
NSAssert(condition, desc)
参数:
condition
:一个评估为YES或NO的表达式。desc
:一个NSString对象,其中包含描述失败情况的错误消息。
参考: