Objective C/C中的命名约定,以"_"开头?

Tat*_*tat 5 c programming-languages objective-c naming-conventions

我看到的东西ppl定义了这样的变量:

b2World *_world;
b2Body *_body;
CCSprite *_ball;
Run Code Online (Sandbox Code Playgroud)

代替

b2World *world;
b2Body *body;
CCSprite *ball;
Run Code Online (Sandbox Code Playgroud)

我熟悉第二个,但不是第一个.所以,我检查了维基百科有关命名约定的内容:

以双下划线或下划线和大写字母开头的名称保留用于实现(编译器,标准库),不应使用(例如__reserved或_Reserved).

那么,是否有以"_"开头的任何特殊含义?

我看到使用"_"开始的代码在这里:

http://www.raywenderlich.com/457/intro-to-box2d-with-cocos2d-tutorial-bouncing-balls

维基页面.

jle*_*ehr 13

在一些Objective-C开发人员中,有一个长期惯例,即使用下划线为实例变量添加前缀.它有以下几种方式:一,它可以更容易地发现.m文件中的实例变量; 二,它减轻了开发人员不得不为方法参数提出创意名称以避免与实例变量名冲突; 正如其他人所指出的那样,它表示实例变量是私有的,因此不应该在整个代码中随意访问.

事实上,我要说,避免直接在比存取(getter和setter)等方法访问实例变量,-dealloc-init....并不是说你永远不应该在其他任何地方使用它们,但在至少在其他方法中使用实例变量之前,你应该至少考虑一下.


Mic*_*zek 0

通常它们用于不应该在当前文件/模块/命名空间/其他内容之外访问的变量,在不支持使用关键字等限制访问的语言private