Objective-C类中的init
方法通常包含以下行:
if ((self = [super init])) { ...
我只是想知道额外的括号是否必要。以下行是否等效?
if (self = [super init]) { ...
的副本
答案 0 :(得分:3)
它们不是必需的,但使用((
和))
说“是的,我指的是作业,而不是比较。”
事实上,clang会警告你在if条件下使用赋值,并建议使用双括号来表示明确性。
总的来说,我认为这可能被认为是错误的编码风格,但这里有例外,因为这是obj-c中特殊的常用模式