我是iphone開發的新手。我正在研究iphone中的語音記錄。我從Apple下載了“ Speak here”示例程序。該程序包含LevelMeter.h文件,其中 @interface LevelMeter : UIView {CGFloat _level, _peakLevel; }該屬性設置為 @property CGFloat level; @property CGFloat peakLevel;聲明_level之類的變量并將其屬性設置為level有什么用。請解釋一下。謝謝。
3 回答
翻過高山走不出你
TA貢獻1875條經驗 獲得超3個贊
提醒
該@property指令等效于聲明一個setter和一個getter。對于level,
@property CGFloat level;
可以替換為
- (CGFloat)level;
- (void)setLevel:(CGFloat)v;
你的問題
為什么要level為一個名為的變量聲明一個名為屬性的屬性,_level以及為什么要首先使用一個開頭來命名變量_?我不知道。
如何運作,在回答LevelMeter.m:
- (CGFloat)level { return _level; }
- (void)setLevel:(CGFloat)v { _level = v; }
慕哥9229398
TA貢獻1877條經驗 獲得超6個贊
在ivar中添加下劃線的原因只是為了使ivar和代碼中的屬性之間的區別更加清晰。蘋果似乎廣泛使用了這種樣式。您不必自己編寫訪問器方法:@synthesize level = _level;會在兩者之間建立自動連接。
- 3 回答
- 0 關注
- 594 瀏覽
添加回答
舉報
0/150
提交
取消
