Bastantes de las personas parecen utilizar una macro como¿Realmente necesitamos una macro de liberación segura?
#define SAFE_RELEASE(X) [X release]; X = nil;
(yo incluido).
He estado reevaluando por qué lo estoy usando y quería ponerme al frente de alguna opinión.
El propósito (creo) para el uso de esta macro es para que si tuviera que accidentalmente utilizar su objeto después de soltarlo, entonces no obtendrá una mala excepción acceso debido a Objective-C será bastante fácilmente ignorarlo cuando el objeto es nulo.
Me parece que esto tiene el potencial de enmascarar algunos errores desconocidos. Tal vez sería preferible que el programa se bloquee cuando intente usar X nuevamente. De esa forma, durante la prueba, puede encontrar el problema y mejorar el código.
¿Este macro alienta la programación perezosa?
¿Pensamientos?
La sección correspondiente del [FAQ] (http://stackoverflow.com/faq) para las preguntas que no deben plantearse aquí. - 'no hay un problema real que deba resolverse:' 'Siento curiosidad si otras personas sienten lo mismo que yo' ". – Abizern
Lo suficiente, pero es un problema que estoy enfrentando. El problema es si debería continuar usando esta macro? ¿Hay alguna buena razón para usarlo de lo que no estoy enterado? – Ian1971