Why do you use an underscore for an instance variable, but not its corresponding property?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
How does an underscore in front of a variable in a cocoa objective-c class work?
我是iPhone开发的新手,我正在研究iPhone中的语音记录。我从苹果下载了"在这里说话"示例程序。它由levelmeter.h文件组成,其中
1 2 3 4 5 | @interface LevelMeter : UIView { CGFloat _level, _peakLevel; } |
属性设置为
1 2 | @property CGFloat level; @property CGFloat peakLevel; |
声明变量(如级别)并将其属性设置为级别有什么用?请解释我。谢谢。
提醒
1 | @property CGFloat level; |
可替换为
1 2 | - (CGFloat)level; - (void)setLevel:(CGFloat)v; |
你的问题
为什么要为一个名为
它的工作原理,在
1 2 | - (CGFloat)level { return _level; } - (void)setLevel:(CGFloat)v { _level = v; } |
下划线表示只能从自己的类中访问的内容。因此,不应该从类外部访问实例变量,但可以访问属性。