什么 - >意思?

我是Objective-C的一个相对新手(只研究了Arron Hillegras的书)并且对我在Apple的一个代码示例中发现的下面的代码片段感到困惑,特别是 - >是什么意思?
-(id) initWithNumbers:(NSArray *)numbers
{
    self = [super init];
    if (self != nil)
    { 
       self->_numbers = [numbers copy];
    }
    return self;
}
在头文件中_numbers被声明为
NSNumber * _number;
(下划线有一些重要意义,因为我记得在某个地方读过这个内容,但此刻我也没想到。 谢谢 知更鸟     
已邀请:
->
是一个普通的C运算符,用于访问指向结构的指针的成员;
.
运算符用于访问结构的成员。从而:
a->b
被翻译成
(*a).b
由于Objective-C对象是指向它下面的结构的指针,因此这适用于访问实例变量。     
当您想要访问ivar时,请使用
->
。像C结构一样,你可以在Objective-C对象中使用
.
->
(在指向结构的指针中),你可以使用
->
但是没有必要,因为你可以直接访问它们。 因此:
self->_numbers = [numbers copy];
_numbers = [numbers copy];
是相同的 如果要明确访问该ivar,则需要使用
->
。 请注意,在Objective-C中,您可以使用
.
但仅限于其属性。 无论如何你都可以使用
->
。     
它通常被称为“箭头”运算符。它允许您使用引用或指向实例的指针来访问对象(或
struct
)的实例变量。它是C和C ++的通用语法。 我很难找到一个很好的写作,但你可能会发现这个信息很丰富。 至于下划线 - 通常它们意味着“私人”;根据可可的编码指南 - 命名基础知识:   避免使用下划线   字符作为前缀意味着私人,   尤其是方法。 Apple储备   使用这个惯例。使用方式   第三方可能导致   名称 - 空间碰撞;他们可能   无意中覆盖现有的   私有方法与他们自己的一个,   带来灾难性的后果。     
这表示对-in的引用 - 对象的实例变量。
Self
是指对象本身,通过写
self->_numbers
,您可以引用属于该类的变量而不是名为
_numbers
的全局变量。 你确定你的书中没有提到这个吗?     
它是一个源于C编程语言的运算符。而且由于Objective-C与C编程兼容,您可能会看到开发人员使用传统的C风格编程。 “ - >”用于访问指针的元素。而且,由于Objective-C中的“对象”只是指针(用*表示),例如NSNumber *号码; ,您可以使用此表示法来访问其元素。 我从未在Objective-C中使用过这种表示法,因为Objective-C中的点符号被接受了。如果“self”具有合成属性“number”,则self.number应与self-> number相同(仅在Objective-C中为true)。     

要回复问题请先登录注册