Как может сработать это if-предложение? - PullRequest
2 голосов
/ 10 августа 2011

Переменная fullscreenController равна нулю, но также не равна нулю?

РЕДАКТИРОВАТЬ: и отладчик, и консольная печать говорят, что переменная равна нулю, но предложение if все еще срабатывает.Code

Console log

Ответы [ 3 ]

4 голосов
/ 10 августа 2011

Этого не может быть в однопоточном приложении; хотя в небрежно написанном многопоточном приложении, я предполагаю, что к тому времени, когда вы доберетесь до этой части кода, она может быть нулевой. Но я подозреваю, что это либо ошибка «вырезать и вставить», либо просто пример отсутствия мышления.

0 голосов
/ 10 августа 2011

Попробуйте сделать все чисто и восстановить. Возможно, исходный код не совпадает с исполняемым файлом.

Также убедитесь, что вы не пытаетесь отлаживать сборку релиза. Иногда оптимизация сборок выпуска путает исходное представление в отладчике.

0 голосов
/ 10 августа 2011

Хотя это очень маловероятно, другой возможной причиной является обнуление слабых ссылок . Если ваш локальный поток содержит только слабые ссылки на fullscreenController, а последняя сильная ссылка освобождается, все обнуления слабых ссылок становятся нулевыми. Есть вероятность, что это может произойти между тестом if и кодом тела ветвления.

Поскольку ZWR распространены в коде с автоматическим подсчетом ссылок, такого рода проблемы станут более регулярными в iOS 5 и Lion, по крайней мере, пока люди не разберутся, как именно использовать ARC.

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