Как проверить, что self.navigationController равен нулю - PullRequest
1 голос
/ 18 сентября 2010

В следующем коде я могу проверить с помощью отладчика значения self и childView.

[self.navigationController pushViewController:childView animated:YES];

Однако я не могу увидеть значение self.navigationController. Как я могу проверить, если это ноль?

Ответы [ 3 ]

2 голосов
/ 18 сентября 2010

Причина в том, что navigationController является свойством, поэтому вы не можете просто изучить его; Вы должны будете отправить владельцу собственности сообщение получателя. В отладчике это довольно дорого, особенно в случае сбоя или иного сбоя, плюс у него всегда могут быть побочные эффекты (например, сбой в объекте Core Data, отложенная загрузка чего-либо или изменение какого-либо состояния в другом иваре), поэтому отладчик не будет делать это случайно.

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

po [self navigationController]

(Я не знаю, позволит ли он использовать там синтаксис доступа к свойству. Между ними нет разницы, что является корнем проблемы: доступ к свойству является сообщением Objective-C Именно поэтому, как я описал выше, отладчик не сделает этого, если вы специально не скажете это.)

2 голосов
/ 18 сентября 2010

Просто добавьте строку:

UINavigationController* navController = self.navigationController;

А затем установите точку останова или все, что вы хотите сделать.

1 голос
/ 18 сентября 2010

Вы всегда можете просто сделать что-то вроде (self.navigationController == nil).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...