45 votes

comment utiliser les délégués avec le comptage automatique des références

J'ai sauté sur l'ARC de mouvement. Dans le passé, j'aurais mon délégué propriétés déclarées comme ceci:

@property(assign) id<MyProtocol> delegate;

J'ai donc pensé que je pourrais le faire en vertu de l'ARC:

@property(weak) id<MyProtocol> delegate;

De ne pas faire. Sur le @synthétiser déclaration dans le .m j'ai une compilation d'erreur:

*Sémantique Question: ivar "délégué" pour __la faiblesse de la propriété de "délégué" doit être __faibles*

Je l'AI annoncé que la faiblesse de la bien que! Aussi comment puis-je passer d'une classe implémentant un protocole à un faiblement référencés de la propriété. Dois-je l'envelopper dans un de ces étranges obj_unretained appels?

Toute aide sur ce serait très apprécié.

65voto

tc. Points 23958

"ivar" signifie "variable d'instance", ce que vous n'avez pas montré. Je parie que ça ressemble à quelque chose comme ça:

 @interface Foo : NSObject {
    id delegate;
}

@property (weak) id delegate;
 

Ce que dit l'erreur, c'est que cela doit ressembler à ceci:

 @interface Foo : NSObject {
    __weak id delegate;
}

@property (weak) id delegate;
 

Si la propriété prétend être faible, l'ivar dans lequel la valeur finit par être stockée doit également l'être.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X