。(点)运算符在Objective-C中究竟做了什么

时间:2013-06-26 16:39:59

标签: c++ objective-c c pointers dot-operator

我自学了C和C ++,现在正在尝试学习Objective-C,但我对类实例上使用的点运算符感到有些困惑。说我宣布了一个班级:

MyClass* myinstance = [[MyClass alloc] init];

//Then I call the member function foo:

myinstance.foo;

显然这在Objective-C中有效,但在C ++或C中(在结构的情况下),这不会。您必须使用运算符 - >。所以我正在寻找一个解释。(点)运算符在Objective-C中的确切含义以及ObjC和C的两个不同含义如何不会导致C和Objective-C之间的兼容性问题,即使Objective-C是C的严格超集。

1 个答案:

答案 0 :(得分:1)

点符号是通过使用空格来调用方法。我们可以通过使用包含所有变量的空格来调用方法,但点符号与属性一起使用并仅合成变量

例如

 variable.method_name; //is a dot notation with property and synthesized variable
[variable method_name]; // is space notation

并且点表示法适用于所有默认属性,因为它们已经是属性并且合成为

label.text = @"Ashok";

并且所述空间可以通过使用set方法单独合成来使用

[label setText:@"Ashok"];

ThanQ