将ivar命名为与类名相同

时间:2011-09-27 13:11:40

标签: objective-c xcode

在我运行Xcode“Analyze”功能之前,我从未考虑过这个问题。假设我有一个名为dude的类,我创建了一个类实例并对其进行了综合,以便self.dude可用。

这很好用。但是,如果我放在dealloc

 [self.dude release];

我收到分析师警告,因为它应该是真的:

[dude release];

但是,这会产生另一个警告,因为Analyzer认为我将release发送到类名,而不是发送给ivar。

现在,如果ivar被命名为与类不同的东西,那么没有问题,[ivar release];可以在没有分析器警告的情况下工作。

我是否应该将此作为一般指示,将ivar命名为类名称是不明智的?它从未干扰我的产品编译或执行,但分析师打开了有关此问题的新问题。

2 个答案:

答案 0 :(得分:3)

你应该用大写字母(Dude)和实例变量(以及其他变量)用小写字母(dude)开始你的类名。这完全避免了这个问题,并且您还遵循Objective-C的标准命名约定。

答案 1 :(得分:0)

以小写字母开头的类名绝对不常见。 Objective-C / Cocoa约定是你用一个大写开始一个类名,用一个小写字母开始方法名和实例变量名。

只需遵循常规惯例,为您的班级Dude命名并命名您的ivar dude