什么 - >是什么意思?

Man*_*Boy 7 objective-c

我是Objective-C的一个相对新手(只研究了Arron Hillegras的书)并且对我在Apple的一个代码示例中发现的下面的代码片段感到困惑,特别是 - >是什么意思?

-(id) initWithNumbers:(NSArray *)numbers
{
    self = [super init];
    if (self != nil)
    { 
       self->_numbers = [numbers copy];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

在头文件中_numbers被声明为

NSNumber * _number;
Run Code Online (Sandbox Code Playgroud)

(下划线有一些重要意义,因为我记得在某个地方读过这个内容,但此刻我也没想到.

谢谢罗宾

Jon*_*ing 8

->是一个普通的C运算符,用于访问指向结构的指针的成员; 该.操作员是用于访问结构成员.从而:

a->b
Run Code Online (Sandbox Code Playgroud)

被翻译成

(*a).b
Run Code Online (Sandbox Code Playgroud)

由于Objective-C对象是指向它下面的结构的指针,因此这适用于访问实例变量.


mar*_*ton 2

它通常被称为“箭头”运算符。它允许您访问对象(或对象)的实例变量struct它允许您使用实例的引用或指针来这是 C 和 C++ 的常见语法。

我正在努力寻找一篇不错的文章,但您可能会发现这篇文章内容丰富。

至于下划线 - 通常它们意味着“私有”;根据Cocoa 编码指南 - 命名基础知识

避免使用下划线字符作为表示私有的前缀,尤其是在方法中。Apple 保留使用此约定。第三方使用可能会导致名称空间冲突;他们可能会无意中用自己的方法覆盖现有的私有方法,从而带来灾难性的后果。