3 回答

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]
。

TA貢獻1770條經驗 獲得超3個贊
這在iOS編程/ objective-C中是非常常見的事情,它與ivars有關。有關更多信息,請閱讀此處:
基于我在我的代碼中養成這種習慣的經驗,它有助于我在意思是自我時不小心寫窗口。反之亦然(不必是窗口,但也不是任何其他變量)

TA貢獻1880條經驗 獲得超4個贊
簡短的回答是:下劃線只是一個有用的慣例,強調類變量對類的“私有”這一事實,你應該通過它們的屬性訪問它們。
你可以在window
沒有前導下劃線的情況下聲明你的變量; 在這種情況下,@ synthetize語句將是簡單的:@synthetize window
,它實際上是相同的。
對于很長的答案,aherlambang發布的鏈接非常有趣...
- 3 回答
- 0 關注
- 638 瀏覽
添加回答
舉報