Tengo dos controles de vista (vcA y vcB), vcA es "spadre para vcB (agregué vcB sobre vcA con addChildViewController), en ambos controladores tengo un objeto declarado con un argumento fuerte. Antes de presentar vcB hago algo vcB.myobject = self.myobject, ¿puede causar un ciclo de retención? ¿Es mejor usar un argumento débil para un objeto de vcB?
Respuestas
2 para la respuesta № 1Provoca un ciclo de retención si el objeto tiene unafuerte referencia a uno de los controladores de vista. Si el objeto no tiene una referencia fuerte a ninguno de los controladores de vista, entonces no causa un ciclo de retención.
2 para la respuesta № 2
Eso no es un ciclo de retención. Son simplemente dos objetos (vcA y vcB) con fuertes referencias a un tercer objeto (myObject
). Eso es normal y correcto. Cada uno realizará la administración de memoria adecuada en ese tercer objeto, y no se perderá.