我从来没有考虑过这个问题,直到我运行Xcode“分析”功能。假设我有一个名为dude
的类,我创建了一个类的实例并合成它,因此self.dude
可用。命名伊娃与类名相同
这工作得很好。然而,在dealloc
如果我把:
[self.dude release];
我得到一个分析器警告,因为真的是应该是:
[dude release];
然而,这产生另一个警告,如分析认为我送的release
到类名,而不是伊娃。
现在,如果伊娃被命名为与课程不同的东西,那么没有任何问题,并且[ivar release];
可以在没有分析器警告的情况下正常工作。
我是否应该将此作为一般性指示,指出ivar与类名相同并不明智?它从来没有干扰我的产品编辑或执行,但分析仪开启了关于此的新问题。
按照约定,类名以大写字母开头,变量以小写字母开头。如果你遵循这个惯例,你应该没有问题。 –
你不应该真的叫释放财产,因为它不是真正的伊娃。它可能是一个副本或已经添加到autoreleasepool与[[var retain] autorelease]范例,应直接调用ivar'[dude release]'。 – bigkm
@bigkm对于'self.dude = nil'和'[dude release]'哪个更好:p – Yuji