Это не другой способ отправить сообщение объекту, это единственный способ.Например, в [myView setValue:@"foo"]
, setValue:
является селектором.(Другой, менее удобный способ написать то же самое - objc_msgSend(myView, @selector(setValue:), @"foo")
.)
Как говорит Ян Генри, вы можете использовать значения SEL
, чтобы выбрать селектор во время выполнения вместо компиляции.Это фундаментальный метод в какао;пользовательские интерфейсы, как правило, подключаются к контроллерам с помощью привязок «цель / действие», где цель - это объект, а действие - селектор.Обычно вы устанавливаете это в перо, но вы также можете сделать это в коде:
[myButton setTarget:myController];
[myButton setAction:@selector(buttonClicked:)]; // Clicking the button will now call [myController buttonClick:myButton].