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