我自学了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的严格超集。
答案 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