(id) отправитель iPhone Пояснение

Привет, ребята, может кто-нибудь объяснить мне, что именно означает (id) отправитель? Я видел это во многих действиях, и я не знаю, как установить этот идентификатор отправителя.

- (IBAction)publishStream:(id)sender {
   // do something
}

Кроме того, не могли бы вы сказать мне, как я могу установить этот идентификатор отправителя в коде?

Спасибо, ура, не знаю


person nimrod    schedule 07.03.2011    source источник


Ответы (4)


id - это тип, а именно тип нетипизированного указателя на объект. Переменная типа id может указывать на любой объект objective-c. В случае IBAction обычно используется единственный параметр с именем «отправитель», который является объектом, отправляющим действие. Любой тип объекта может отправить действие, поэтому тип параметра sender - id.

person Caleb    schedule 07.03.2011

Используя это, вы можете перенаправить несколько «виджетов» пользовательского интерфейса на одну и ту же функцию-обработчик. Затем вы можете использовать «отправителя», чтобы узнать, какой из них создал сообщение.

person Goz    schedule 07.03.2011

Ну, идентификатор - это в основном пустой тип, так что это какой бы тип объекта не вызвал его, я не верю, что вы на самом деле устанавливаете отправителя, это просто объект. Скажем, UIButton называется my IBAction, тогда все, что UIButton окажется отправителем.

person ultifinitus    schedule 07.03.2011

на самом деле отправителем является Control, который вызывает событие. например, если вы TouchInside кнопку и вы прикрепили к своему методу. тогда эта кнопка будет здесь отправителем.

person Mujah Maskey    schedule 07.03.2011
comment
sender может быть указателем на элемент управления, и это типичный случай, но он также может быть указателем на любой другой объект. - person Caleb; 08.03.2011