为什么在objective-c中星号后面使用下划线
@interface TestAppDelegate : NSObject <UIApplicationDelegate>
{
LeftViewController *_leftViewController;
}
@property (nonatomic, retain) IBOutlet LeftViewController *leftViewController;
在一些风格指南中,有人指出在实例变量前面加下划线是个好习惯。这样,如果直接处理实例变量(_foo
)或属性(foo
),它会使意图更清晰。
(有时人们会忘记在前面写self.
)
它是变量名的一部分。通常用于避免碰撞
只是给这个变量另一个名字。所以在实现文件中你可以使用
self.leftViewController blablabla
或
_leftViewController blablabla
但是,老实说,我从来没有声明过这些变量两次。如果它是一个属性——让它成为一个属性,不要在@interface部分声明它。但这只是我的看法