В частности, в случае выпуска иваров в dealloc
в сообществе довольно много споров о том, лучше ли устанавливать их на nil
после выпуска или нет.
Pro-nil camp считает, что в целом это снижает вероятность сбоя приложения в неудачном случае, когда к объекту обращаются после освобождения или даже во время многопоточных приложений.
Anti-nilЛагерь не считает, что приведенный выше аргумент особенно полезен, потому что они чувствуют, что приложение СЛЕДУЕТ аварийно завершить работу в таком случае, чтобы сделать более очевидным, что ваше приложение имеет дефект (оно обращается к освобожденному объекту).
Это не обязательно наиболее полное резюме позиций, но оно дает вам представление о «противоречиях».
Проблема KVO / KVC несколько отделена, поскольку это аргумент, а не вопрос о том, следует ли устанавливатьivar to nil, но безопасно ли использовать установщик свойства для этого из-за возможногопроблемы с побочными эффектами (например, KVO / KVC).