问题描述
可能的重复:
cocoa Objective-c 类中变量前面的下划线是如何工作的?
我是iphone开发的新手.我正在研究iphone的录音.我从Apple下载了speak here"示例程序.它由LevelMeter.h文件组成,其中
I am new to iphone development.I am doing research on voice recording in iphone .I have downloaded the "speak here" sample program from Apple.It consist of LevelMeter.h file, in which
@interface LevelMeter : UIView {
CGFloat _level, _peakLevel;
}
属性设置为
@property CGFloat level;
@property CGFloat peakLevel;
声明一个像_level这样的变量并将其属性设置为level有什么用.请解释一下.谢谢.
What is the use of declaring a varible like _level and setting its property as level.Please explain me.Thanks.
推荐答案
提醒
@property
指令等效于声明一个 setter 和一个 getter.在level
的情况下,
Reminder
The @property
directive is equivalent to declaring both a setter and a getter. In the case of level
,
@property CGFloat level;
可以替换为
- (CGFloat)level;
- (void)setLevel:(CGFloat)v;
你的问题
为什么要为名为 _level
的变量声明一个名为 level
的属性,为什么首先要使用前导 _
命名变量?我不知道.
Your question
Why declare a property named level
for a variable named _level
and why name a variable with a leading _
in the first place? I don't know.
它是如何工作的,在 LevelMeter.m
中有回答:
How it works, is answered in LevelMeter.m
:
- (CGFloat)level { return _level; }
- (void)setLevel:(CGFloat)v { _level = v; }
这篇关于为什么对实例变量使用下划线,而不对它的相应属性使用下划线?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!