Методы первого респондента не волшебство. Что происходит, когда сообщение отправляется первому респонденту, так это то, что у текущего первого респондента приложения (обычно это сфокусированное представление / элемент управления) спрашивается, реализует ли он метод. Если это так, метод вызывается. Если это не так, то задается следующий респондент вверх по цепочке и так далее, пока не будет достигнут верхний уровень (экземпляр NSApplication
). Объект должен фактически реализовать метод для его вызова, он не может просто объявить его.
В этом случае IKImageView
реализует -setRotation:
как частный метод. Это означает, что метод присутствует (именно поэтому IKImageView принимает сообщение, отправленное первому ответчику), но его использование не задокументировано и не поддерживается. Кажется странным, что Apple отправит пример, используя приватный метод, но все готово. Это определенно тот случай, когда иногда методы случайно исключаются из общедоступных заголовков, когда поддерживается их использование, однако, как правило, целесообразно избегать использования частных методов, если кто-то из Apple специально не сказал вам, что можно использовать один из них.
Вы можете генерировать заголовки для всех методов объекта Objective C, включая частные методы, из двоичного файла, используя class-dump.
IKImageView
имеет публичный метод -setRotationAngle:
, который, вероятно, поможет, если вы хотите изменить ротацию.