Что именно делает оператор.(Точка) в Objective-C

Я изучал 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 ответ

Решение

Точечная нотация - вызывать метод так, как мы это делаем, используя пробел. мы можем вызывать методы, используя пробел со всеми переменными, но точечная нотация используется со свойством и синтезирует только переменные

пример

 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

Другие вопросы по тегам