@selector()
является частью языка.Он определяет литерал SEL
, точно так же, как @""
определяет литерал NSString
.
Следует понимать, что @selector
представляет селектор, а не сообщение.Селектор это просто имя.Это всего лишь одна небольшая часть сообщения.Он даже не несет информацию о типе.
Также обратите внимание, что @property
ничего не генерирует.Он просто обещает, что объект будет реагировать на один или два селектора (геттер и сеттер).Есть несколько способов выполнить этот контракт.@synthesize
только один из них.Вы также можете вручную реализовать необходимые методы или использовать @dynamic
, чтобы пообещать, что он будет каким-то образом обработан во время выполнения.