我可以通过任何方式禁用'消息为nil而不是抛出错误'行为(即我想要错误)?

时间:2012-04-15 01:21:04

标签: objective-c ios xcode

我已经读过,在ObjC中允许向nil发送消息,我知道这是该语言的一部分,并且存在争议,赞成和反对。我不想就任何一个问题展开讨论。

我只是想知道是否有一种方法,总是不得不测试if (presumedInstance != nil),在尝试向nil发送消息时我会遇到错误?它在编码时没有帮助我,我没有得到错误 - 更难以确定代码缺陷的位置等。

也许是XCode中的设置或脚本?

2 个答案:

答案 0 :(得分:2)

不,没有办法做到这一点。事实上,它是Objective-C的一个非常重要的特性。我实际上认为你进行测试更为重要(if (object),这与if (object != nil)相同)因为它迫使你考虑你的函数和方法的输入和输出,以及应用程序经历的代码路径。一开始可能令人沮丧,但这是你习惯的事情之一,它让生活变得更加轻松。

答案 1 :(得分:0)

尝试断言怎么样,比如NSAssert

  

NSAssert 如果给定条件为假,则生成断言。

     

用法: NSAssert(condition, desc)

     

参数:

     
      
  • condition一个评估为YES或NO的表达式。
  •   
  • desc一个NSString对象,其中包含描述失败情况的错误消息。
  •   

参考: