代码之家  ›  专栏  ›  技术社区  ›  Steph Thirion

在发送发布消息之前检查是否为非零是否是良好做法?

  •  8
  • Steph Thirion  · 技术社区  · 17 年前

    当发布一个可能存在或不存在的实例时,我通常会这样写:

    但是,既然向nil发送消息不是问题,那么这是否有必要呢?

    我想问题可以归结为:将一个对象与nil进行比较,还是向nil发送一条消息,哪个会占用更多的开销?

    4 回复  |  直到 17 年前
        1
  •  15
  •   shek    17 年前

    看见 this page 这就解释了将消息传递给nil(概括您的示例)是非常好的。

        2
  •  5
  •   Matt Gallagher    17 年前

    当我编码的C++比Obj-C多时,我总是编写代码来检查 nil --因为这是我对自己的一个提示,这个指针是允许的 objc_msgSend 处理这个问题,因为我在阅读代码时已经变得更加自如,并且假设任何指针都可以有效地 .

    在“安全编码”级别上,我认为更重要的是始终将指针设置为 每次发布后(可能排除 release dealloc ).

        3
  •  2
  •   Ben Gottlieb    17 年前

    那张支票没有必要。除非您对这段代码进行了大量迭代(10000次,甚至更多),否则时间差是微不足道的。

        4
  •  2
  •   Kornel    17 年前

    nil ,所以没有必要重复两次。

    [object release]; object = nil;