亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

合成屬性和帶下劃線前綴的變量:這是什么意思?

合成屬性和帶下劃線前綴的變量:這是什么意思?

Helenr 2019-08-19 17:32:56
合成屬性和帶下劃線前綴的變量:這是什么意思?這是什么意思?@synthesize window=_window;我知道一般來說這意味著'某個類'有一個窗口,但為什么要使用_window而不僅僅是window?這是名稱空間嗎?
查看完整描述

3 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

我將用基本的英語來描述這個編程約定。

在其他語言中,將成員變量命名為previous m,m_或者_將它們與本地聲明的變量區分開,并在必要時表示它們應該寫入訪問器(no classInstance.m_Variable = 5),這是一種非常常見的約定。

如果一個Objective-C程序員聲明遵循這個約定的ivars(他們應該)并使用基本語法,@synthesize _window;那么該屬性的用法會變得有點難看:classInstance._window = myWindow或者[classInstance set_window:myWindow]。使用語法@synthesize window=_window;允許的OBJ-C程序員利用一個流行的編程標準(前述與實例變量_,同時具有使用Apple標準屬性訪問)classInstance.window = myWindow[classInstance setWindow:myWindow]


查看完整回答
反對 回復 2019-08-19
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

這在iOS編程/ objective-C中是非常常見的事情,它與ivars有關。有關更多信息,請閱讀此處:

基于我在我的代碼中養成這種習慣的經驗,它有助于我在意思是自我時不小心寫窗口。反之亦然(不必是窗口,但也不是任何其他變量)


查看完整回答
反對 回復 2019-08-19
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

簡短的回答是:下劃線只是一個有用的慣例,強調類變量對類的“私有”這一事實,你應該通過它們的屬性訪問它們。

你可以在window沒有前導下劃線的情況下聲明你的變量; 在這種情況下,@ synthetize語句將是簡單的:@synthetize window,它實際上是相同的。

對于很長的答案,aherlambang發布的鏈接非常有趣...


查看完整回答
反對 回復 2019-08-19
  • 3 回答
  • 0 關注
  • 638 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號