comment utiliser les délégués Automatique de Comptage de Référence
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;
Pas le cas. Sur le @synthétiser déclaration dans le .m j'ai une compilation erreur:
*Sémantique Question: Les 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é.
- L'ARC peut être discutée publiquement. iOS 5 API spécifique ne peut pas.
- L'implication est que l'iOS 5 prend en charge la GC Obj-C, ce qui est probablement confidentielles, sauf si Apple a annoncé qu'elle (je ne sais pas si ils ont; j'ai été trop occupé à suivre).
Vous devez vous connecter pour publier un commentaire.
"ivar" signifie "variable d'instance", qui vous n'avez pas indiqué. Je parie qu'il ressemble à quelque chose comme ceci:
Quelle est l'erreur de dire, c'est qu'il doit ressembler à ceci:
Si les revendications de propriété à être faible, le ivar que la valeur est stockée dans doit être faible ainsi.
@synthesize
poignée en ligne que pour vous aussi bien. 🙂{ __unsafe_unretained id foo; } @property(assign) id foo;
. Vous pourriez faire cuire quelques#define
s et de construire des versions différentes, mais alors vous aurez besoin de tester les deux d'entre eux. Sinon, il y a une possibilité que quelqu'un va ajouter le support d'exécution de 10.5/10.6, tout comme ils l'ont fait avec des "blocs" (si le compilateur va vous permettre de les utiliser en est une autre histoire).