init方法中常用的基本Objective-C语法

时间:2012-09-28 17:27:19

标签: objective-c syntax parentheses

  

可能重复:
  Double parentheses in sample code

Objective-C类中的init方法通常包含以下行:

if ((self = [super init])) { ...

我只是想知道额外的括号是否必要。以下行是否等效?

if (self = [super init]) { ...

修改:这确实是Double parentheses in sample code

的副本

1 个答案:

答案 0 :(得分:3)

它们不是必需的,但使用(())说“是的,我指的是作业,而不是比较。”

事实上,clang会警告你在if条件下使用赋值,并建议使用双括号来表示明确性。

总的来说,我认为这可能被认为是错误的编码风格,但这里有例外,因为这是obj-c中特殊的常用模式