В чем разница между этими двумя типами синтаксиса? (Цель-C)

Я просто пытаюсь понять этот тип синтаксиса

я знаю, что

[instanceOfClass  Method];

eg. [myImage setImage:[NSImage imageNamed:@"picture.jpg"]];

выполняет метод для экземпляра класса.

но как это работает..

Variable = [Class methodName];

eg. int Value = [sender intValue];

Может кто-то объяснить это мне. Я понимаю, что первый пример выполняет метод для экземпляра класса, класса или переменной.

но как работает последняя часть?

Спасибо большое.


person Space Ghost    schedule 14.10.2011    source источник


Ответы (2)


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

Я бы рекомендовал потратить немного времени на чтение введение предоставлено Apple. Этот конкретный вопрос: обсуждается в этой части документа:

Как и стандартные функции C, методы могут возвращать значения. В следующем примере переменной isFilled присваивается значение YES, если myRectangle рисуется как сплошной прямоугольник, или NO, если он рисуется только в форме контура.

BOOL isFilled;

isFilled = [myRectangle isFilled];
person Michael Fredrickson    schedule 14.10.2011
comment
Спасибо. Я все еще изучаю и читаю эту новую книгу «Начало программирования на Mac, разработанную с помощью Objective C и Cocoa». Это действительно полезно до сих пор, но кое-что просто нужно было прояснить. Есть ли шанс, что вы могли бы привести мне пример того, что я дал вам, но другого, и сказать мне, что именно он делает? - person Space Ghost; 15.10.2011
comment
Бум. Ну вот, большое спасибо за этот пример, теперь все понятно. Очень ценю это, сэр. - person Space Ghost; 15.10.2011

Существуют методы экземпляра (определенные с помощью -) и методы класса (с помощью +). Методы экземпляра вызываются в экземплярах, а методы класса — в классах.

- (void)instanceMethod;
+ (void)classMethod;

Помимо этого, вы, например:

int Value = [sender intValue];

Кажется, это метод экземпляра. Если это внутри действия, имейте в виду, что sender — это просто аргумент:

- (IBAction)startWork:(id)sender
{
  ...
}
person sidyll    schedule 14.10.2011