Tengo una aplicación (solo ios5) que dentro de un método declara una variable débil utilizada dentro de un bloque para hacer referencia a una instancia de un controlador de vista.Objective-C ARC __weak referencia de variable desencadena advertencia "atributo __weak no se puede especificar en una variable automática"
QRCodeViewController * __weak weakSelf = self;
El problema es que el compilador muestra un aviso que dice:
atributo __weak no se puede especificar en una variable automática
En esa aplicación que he utilizado una gran cantidad referencias débiles y nunca vi una advertencia como esa, la única diferencia con las otras clases es que esta clase se implementa en un archivo .mm ya que usa un objeto C++ y el proyecto no puede compilarse si lo dejo como .m.
Debo decir que el código parece funcionar bien.
¿Alguna sugerencia?
¿No debería ser '__weak QRCodeViewController * = weakSelf auto;'? –
@Martin cualquiera de los dos funciona, son equivalentes, su forma es la que veo que se usa con más frecuencia, pero el camino de Andrea es el recomendado por Apple. –
Pregunta similar: http://stackoverflow.com/questions/10431110/nested-blocks-and-references-to-self. La respuesta fue que el objetivo de implementación se estableció en 4.0, pero ese no es el caso para usted. ¿Correcto? –