Что делает __ передающий __ в среднем отслеживании стека?

Установка HorizontalAlignment для Протяжения, и Ширина к Автоматическому включению пользовательский элемент управления достигают желаемых результатов?

9
задан zoul 30 September 2009 в 05:15
поделиться

2 ответа

Материал пересылки используется для сообщений пересылки ммм… . Каждый объект может легко пересылать полученные сообщения некоторым другим объектам, см. Отличный учебник Скотта Стивенсона . Когда ваш GameObject получает сообщение, которое он не понимает, он пытается его переслать. Если пересылка не реализована, вызывается метод doesNotRecognizeSelector , и вы получаете исключение.

Подробное описание можно найти в документации Apple для NSObject ] class:

Когда объект отправляет сообщение для которому у него нет соответствующего метода, исполняющая система дает приемнику возможность передать сообщение к другому получателю. Он делегирует сообщение, создав NSInvocation объект, представляющий сообщение и отправив получателю forwardInvocation: сообщение, содержащее этот объект NSInvocation как аргумент. Получатель forwardInvocation: метод затем может выберите пересылку сообщения на другой объект. (…) Реализация NSObject forwardInvocation: просто вызывает doesNotRecognizeSelector: метод; Это не пересылает никаких сообщений. Таким образом, если вы решили не реализовывать forwardInvocation :, отправка нераспознанные сообщения объектам будут вызывать исключения.

Что касается вашей ошибки, похоже, что GameObject получает какое-то сообщение, которое он не понимает. Это может быть простая опечатка или что-то более тонкое, например ошибка управления памятью, вам необходимо предоставить нам дополнительную информацию.

20
ответ дан 4 December 2019 в 09:37
поделиться

Первое, что я хотел бы проверить, это наличие у GameObject метода -doesTouch: или + doesTouch :. Я не знаю, что такое __forwarding ... Какое сообщение об ошибке вы видите в журнале консоли?

2
ответ дан 4 December 2019 в 09:37
поделиться