Почему "(UIButton *) отправитель", а не "UIButton * отправитель"? - PullRequest
2 голосов
/ 09 февраля 2012

В Objective-C, что означает «(UIButton *) sender» и почему это не «UIButton * sender»?Или какой-нибудь NSObject вместо UIButton.Это больше вопрос о приоритете звездочки ...

- (IBAction)digitPressed:(UIButton *)sender {
   //...
}

1 Ответ

6 голосов
/ 09 февраля 2012

Это не о приоритете в этом случае. Скобки не являются приведением.

Это синтаксис в ObjC для объявления метода, и он говорит, что параметр с именем sender имеет тип UIButton *.

Звездочка идет с UIButton, потому что они вместе называют тип аргумента. В этом случае, поскольку это метод действия, исходящий от кнопки, вы используете UIButton *. В общем случае, конечно, метод может иметь параметры любого типа, если вызывающая сторона вызывает его правильно. :)

...