Почему несуществующий IBOutlets не приводит к сбою приложения? - PullRequest
1 голос
/ 06 января 2012

Извините, если на этот вопрос уже был дан ответ, но я ничего не нашел после некоторого времени поиска. Я привык к тому, что вызов методов несуществующих объектов приводит к краху. Однако, когда у меня есть несколько объявленных IBOutlets, которые не имеют никаких соединений с реальными объектами в xib, я могу отправлять им сообщения без сбоя. Что именно происходит?

1 Ответ

0 голосов
/ 06 января 2012

В зависимости от используемой вами версии среды исполнения какао может произойти несколько вещей:

IBOutlet отправит сообщение, но, поскольку получатель (NIL?) Не понимает, что возникло исключение, но он обнаружен, консоль, скорее всего, напечатает сообщение, информирующее вас об этом.

IBOutlet сначала проверяет [object respondsTo:@SEL(selector)], если false, он ничего не делает.

Объект XIB вообще не вызывает ваше сообщение делегата сообщения (получатель), потому что оно не вставлено в него.

...