->
是传统的 C 运算符,用于访问指针引用的结构的成员。由于 Objective-C 对象(通常)用作指针,而 Objective-C 类是一个结构体,因此您可以使用->
访问其成员,这些成员(通常)对应于实例变量。请注意,如果您尝试从类外部访问实例变量,则必须将实例变量标记为公共。
因此,例如:
SomeClass *obj = …;
NSLog(@"name = %@", obj->name);
obj->name = @"Jim";
访问实例变量name
,声明于SomeClass
(或其超类之一),对应于对象obj
.
另一方面,.
(通常)用作点语法 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocObjectsClasses.html对于 getter 和 settermethods.例如:
SomeClass *obj = …;
NSLog(@"name = %@", obj.name);
相当于使用getter方法name
:
SomeClass *obj = …;
NSLog(@"name = %@", [obj name]);
If name
is a 申报财产 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProperties.html,可以给它的 getter 方法起另一个名字。
点语法也用于 setter 方法。例如:
SomeClass *obj = …;
obj.name = @"Jim";
相当于:
SomeClass *obj = …;
[obj setName:@"Jim"];