iphone ios ios5 automatic-ref-counting

iphone - cómo usar delegados con recuento automático de referencias



ios ios5 (1)

Me he subido al carro de ARC. En el pasado, tenía mis propiedades de delegado declaradas así:

@property(assign) id<MyProtocol> delegate;

Entonces pensé que haría esto bajo ARC:

@property(weak) id<MyProtocol> delegate;

No tan. En la instrucción @synthesize en el .m tengo un error de compilación:

* Problema semántico: el delegado de ivar ''existente'' para ''delegado'' de propiedad débil debe ser __weak *

¡LO HE DICHO como débil, sin embargo! Además, ¿cómo paso una clase implementando un protocolo a una propiedad débilmente referenciada? ¿Tengo que envolverlo en una de esas extrañas llamadas obj_unreinidas?

Cualquier ayuda sobre esto sería muy apreciada.


"ivar" significa "variable de instancia", que no has mostrado. Apuesto a que se ve así:

@interface Foo : NSObject { id delegate; } @property (weak) id delegate;

Lo que el error está diciendo es que debe verse así:

@interface Foo : NSObject { __weak id delegate; } @property (weak) id delegate;

Si la propiedad dice ser débil, el valor en el que el valor termina siendo almacenado también debe ser débil.