Así que pensé que tenía todas estas preguntas completamente resueltas. Entonces, de repente, recibo un error (un bloqueo) que no puedo entender. Luego, después de investigar para remediar el accidente, noto que todo lo que creía saber sobre estas áreas críticas es algo erróneo.Release, Dealloc y Self Reference
A continuación se presentan 8 preguntas Voy a disparar por ahí con la esperanza de que alguien responda - las respuestas a estas me ayudarán enormemente a recuperar mi comprensión. Gracias de antemano!
Q1) ¿Está bien invocar Release en un objeto si esa referencia es nula? Esto debería ser inofensivo, ¿verdad?
Q2) ¿Está bien invocar Release en un objeto si esa referencia se ha liberado y como un recuento de referencia de 0?
Q3) ¿Es necesario establecer una referencia a nula DESPUÉS de soltarlo? ¿Qué pasa si no lo configuras a cero?
Q4) ¿Existe realmente una diferencia entre nulo y NULL, o es solo una cuestión semántica ayudar al lector/desarrollador a conocer el tipo de objeto simplemente mirándolo?
Q5) ¿El uso de propiedades REQUIERE el uso del puntero 'Self'?
Q6) El uso de variables de instancia requiere que NO se use el puntero 'Self'?
Q7) ¿Cuándo alguna vez querría usar una variable de instancia en lugar de su propiedad? Me imagino que los miembros de datos de tipo de valor están bien, ya que no están liberando y manteniendo involucrados.
Q8) ¿Es necesario llamar a dealloc de un objeto desde la función dealloc? En muchos ejemplos he visto que se llama a Release, pero no a Dealloc: ¿son incorrectos estos tutoriales?
Nice q.Acabo de encontrar algunas preguntas nuevas que ni siquiera sabía que quería responder. – typeoneerror