【问题标题】:Basic Objective-C syntax commonly used in init methods [duplicate]init方法中常用的基本Objective-C语法[重复]
【发布时间】:2012-09-28 17:27:18
【问题描述】:

可能重复:
Double parentheses in sample code

Objective-C 类中的init 方法通常会有以下行:

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

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

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

编辑:这确实是Double parentheses in sample code的副本

【问题讨论】:

标签: objective-c syntax parentheses


【解决方案1】:

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

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

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

【讨论】:

  • 如果你像很多人一样使用 -Werror 编译,这是必要的。
猜你喜欢
  • 2011-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-16
  • 2019-06-23
相关资源
最近更新 更多