一千萬個為什麽

搜索

Objective C/C中的命名約定,以“_”開頭?

我看到ppl的東西定義了這樣的變量:

b2World *_world;
b2Body *_body;
CCSprite *_ball;

代替

b2World *world;
b2Body *body;
CCSprite *ball;

我熟悉第二個,但不是第一個。所以,我檢查了維基百科有關命名約定的內容:

以雙下劃線開頭的名稱   或下劃線和大寫字母   保留用於實施   (編譯器,標準庫)和   不應該使用(例如__reserved或   _Reserved)。

那麽,是否有以“_”開頭的任何特殊含義?

我看到使用“_”開始的代碼在這裏:

http://www.raywenderlich.com/ 457 /介紹到的Box2D與 - cocos2d的教程彈跳-球

維基頁面。

最佳答案

在一些Objective-C開發人員中,有一個長期慣例,即使用下劃線為實例變量添加前綴。它有以下幾種方式:一,它可以更容易地發現.m文件中的實例變量;二,它使開發人員不必為方法參數提出創意名稱,以避免與實例變量名沖突;正如其他人所指出的那樣,它表示實例變量是私有的,因此不應該在整個代碼中無法訪問它們。

事實上,我認為避免直接在訪問器(getter和setter), -dealloc-init ... 之外的方法中訪問實例變量。並不是說你永遠不應該在其他任何地方使用它們,但是在其他方法中直接使用實例變量之前,你至少應該考慮一下。

轉載註明原文: Objective C/C中的命名約定,以“_”開頭?