Довольно много людей, кажется, использовать макрос, такие какНам действительно нужен безопасный макрос релиза?
#define SAFE_RELEASE(X) [X release]; X = nil;
(включая меня).
Я пересматриваю, почему я его использую, и хотел, чтобы на холсте было какое-то мнение.
Целью использования этого макроса является то, что если вы были случайно, используйте свой объект после его освобождения, тогда вы не получите исключение из-за плохого доступа, потому что object-c вполне счастливо проигнорирует его, если объект равен нулю.
Мне кажется, что это может замаскировать некоторые неясные ошибки. Возможно, на самом деле было бы предпочтительнее, если бы программа сработала, когда вы снова попытаетесь использовать X. Таким образом, во время тестирования вы можете найти проблему и улучшить код.
Поддерживает ли этот макрос ленивое программирование?
Мысли?
Соответствующий раздел в [FAQ] (http://stackoverflow.com/faq) для вопросов, которые не должны быть заданные здесь. - «Нет реальной проблемы, которую нужно решить:« Мне любопытно, если другие люди чувствуют себя так ». – Abizern
Достаточно честный, но это проблема, с которой я столкнулся. Проблема в том, следует ли продолжать использовать этот макрос? Есть ли веские причины использовать его, о котором я не знаю? – Ian1971