2012-06-28 5 views
1

В Objective-C я увидел, что мы можем использовать оператор точки, чтобы установить и получить значение, и для той же задачи я увидел что-то вроде метода «ob method» внутри метода квадратных фигур, что мы называем синтаксисом такого типа ?В Objective-C, что мы называем синтаксисом «[метод метода]»?

+0

Оператор точки чаще именуется «обозначение свойства». –

ответ

4

Обозначение кронштейна: основной продукт небольшого разговорного языка, а теперь прекрасный вид языка ObjC.

Кронштейны были способом SmallTalk: «Вы там, возьмите это сообщение и сделайте что-нибудь с ним», и так они были реализованы в Objective C. Мы отправляем сообщение в первую часть [Object] и указываем сообщение во второй части [Message Object];

Конечно, они также выполняют аналогичную функцию со свойствами. Свойства на большинстве языков записываются в точечной нотации (Object.property), но с Objective-C и современной поддержкой времени выполнения для свойств, не поддерживаемых ivar, и директивой @synthesize, свойства автоматически генерируют геттеры с одинаковым именем. Звучит сложно? Это не так. Если у меня есть пример собственности, то я могу получить к нему доступ в одном из двух способов:

self.example; 

Или

[self example]; 

Легко!

Но директива @synthesize не останавливается на достигнутом. Мы получаем геттер и сеттер. У сеттера можно получить доступ к тому же количеству способов, что и геттер.

self.example = foo; 

является эквивалентом

[self setExample:foo]; 

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

1

Это называется обмен сообщениями или отправка сообщения, вы отправляете сообщение method к объекту ob

Его аналогично вызову метода в Java или C++

Так эквивалент в Java будет

ob.method(); 
+0

Лучше не связывать ОО с императивным программированием (например, с C) –

0
[ob method] 

Это способ вызова методов в Objective-C. Точно так же вы можете позвонить myObject.method(), в примере Java por.

ob.MyProperty

ли как доступ Ивар, используя это геттер/сеттер метода, например:

Get метод ->NSLog(@"%@",ob.myProperty);

Установить метод ->ob.myProperty = @"Hello World";

Обратите внимание, что вы также можете использовать установленный метод:

[ob setMyProperty:@"Hello World"]; 

Или используйте ge Метод т, как это:

NSLog(@"%@",[ob myProperty]); 

В Objective-C вы обычно не будет создавать вручную и присваивателя, потому что у вас есть возможность создавать их с помощью @property и @synthesize.

-1

Это известно как вызывающая функция ..

как вы вызываете функцию в другом языке программирования, как в Java или C#:

ob.method() // where ob is object and method is the function name.. 

аналогичен, если вы хотите, чтобы вызвать функцию в цели с синтаксисом вызывается функция:

[ob method]; 
Смежные вопросы