objective-c - OC Il vaut mieux ne pas utiliser de propriétés dans les méthodes d'initialisation ou de dealloc, pourquoi ?
習慣沉默2017-05-02 09:29:36
0
3
720
J'ai vu cette description plusieurs fois : il est préférable de ne pas utiliser d'attributs dans la méthode d'initialisation ou le dealloc, car vous ne pouvez pas être sûr que self appelle réellement l'instance souhaitée. Pourquoi ?
Où l’avez-vous regardé ? Tout cela appartient au passé, il n’y a aucune restriction dans ARC, vous pouvez l’utiliser comme vous le souhaitez.
Dans l'ancien temps de la gestion manuelle de la mémoire, appeler des attributs impliquait d'ajouter ou de soustraire des compteurs de références, et self = [super ...] l'objet initialisé n'est pas nécessairement un objet de la classe actuelle, il peut s'agir d'une "variante" ou d'une classe privée (objc en classe a la différence entre class et metaclass), donc si vous ne savez pas comment ajouter ou soustraire le compteur de référence dans la méthode de définition d'attribut, vous ne pouvez conserver et libérer que pour ivar.
Parce qu'il existe des catégories (Catégorie), des setters, des getters, des KVO, etc., vous devez y prêter attention Le plus important est que la grammaire peut appeler les propriétés et les méthodes de classification, mais _. ne fonctionne pas, il faut faire attention
Où l’avez-vous regardé ? Tout cela appartient au passé, il n’y a aucune restriction dans ARC, vous pouvez l’utiliser comme vous le souhaitez.
Dans l'ancien temps de la gestion manuelle de la mémoire, appeler des attributs impliquait d'ajouter ou de soustraire des compteurs de références, et
self = [super ...]
l'objet initialisé n'est pas nécessairement un objet de la classe actuelle, il peut s'agir d'une "variante" ou d'une classe privée (objc en classe a la différence entreclass
etmetaclass
), donc si vous ne savez pas comment ajouter ou soustraire le compteur de référence dans la méthode de définition d'attribut, vous ne pouvez conserver et libérer que pourivar
.retain(copy,new) et release apparaissent par paires
Parce que cela générera des références circulaires, comme délégué, qui ne seront jamais publiées
Parce qu'il existe des catégories (Catégorie), des setters, des getters, des KVO, etc., vous devez y prêter attention
Le plus important est que la grammaire peut appeler les propriétés et les méthodes de classification, mais _. ne fonctionne pas, il faut faire attention