0

可能重复:
示例代码中的双括号

通常,initObjective-C 类中的方法将具有以下行:

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

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

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

编辑:这确实是示例代码中双括号的副本

4

1 回答 1

3

它们不是必需的,但使用(())说“是的,我的意思是分配,而不是比较”。

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

一般来说,我认为这可能被认为是糟糕的编码风格,但这里有一个例外,因为这是 obj-c 中一种特殊的常用模式

于 2012-09-28T17:29:04.080 回答