Глядя только на библиотеку времени выполнения Objective-C, когда сообщение отправляется объекту, который не отвечает на него, система времени выполнения дает получателю еще один шанс обработать сообщение. Таким образом, метод получателя forward::
, если он реализован, вызывается. Однако, глядя на NSObject.mm, NSObject
не похоже, не реализует forward::
.
Итак, как же вызывается метод forwardInvocation:
NSObject
, поскольку единственное, что вызывает система среды выполнения, когда требуется переадресация, — это forward::
? Использует ли Foundation objc_setForwardHandler
(runtime.h) для установки новый обработчик, который вызывает forwardInvocation:
всякий раз, когда сообщение, отправленное объекту NSObject
, необходимо переслать?