avoir un problème intéressant dans lequel il existe une classe qui est référencée dans une mise en page XIB (sous-classe d'Uiscrollview) et n'est pas désaffectée selon les instruments / allocations et ne se casse pas dans sa routine de transloc. Appliquez-le SClass1.
Il y a une classe d'utilisation (appelons-la uclass) qui a le fichier XIB et la sortie. P> Ceci est accroché correctement à la XIB mise en page de fichier. p> sclass1 est une propriété allouée lorsque le XIB pour UCLASS est chargé. Uclass est servi de dialoguité puis recréé de temps en temps et nous avons donc un autre exemple de sclass1, mais Sclass1 ne s'en va jamais et ne peut jamais trouver une autre référence à elle. P> forer dans les instruments montre celui d'un malloc Et c'est tout. p> fyi, la classe commence avec p>
4 Réponses :
Je pense que votre car Vous aurez plus d'informations avec la documentation Apple sur Transition sur les notes de version arc dans la section sur attributs de propriété p>. P> P> @property code> devrait être fort pour une classe:
fort code> est l'équivalent à
conserver CODE> et ARC gérera la version pour vous. P>
C'est la bonne réponse, tout ce qui est une iboutlet doit être faible, la vue ne se fait pas de relâcher car le contrôleur a un point de conservation de la prise et la sortie a une référence au contrôleur. Créer un cycle de retenue. Avoir une uppote.
Si un objet ne doit pas être distribué sous arc, cela signifie une référence forte à celle-ci. Étant donné que votre propriété est Essayez de trouver et de supprimer ces principaux propriétaires. Seulement après que tous sont supprimés, l'objet peut être distribué. P> faible code> l'objet doit être étroitement détenu par quelque chose d'autre que l'objet Uclass (sinon, il serait distribué immédiatement après la charge XIB). Dans le code que vous avez fourni, il n'est pas clair de ce que le vif propriétaire de cet objet est, mais je suppose que cela pourrait être un (ou plus) des éléments suivants: P>
superview code> si elle est ajoutée sous l'un des
Sous-visVIEWS code>. Cela se produit automatiquement lorsqu'un fichier XIB est chargé. Si le
superview code> ne doit pas être distribué non plus le
sclass code>. Vous pouvez supprimer cette propriété en appelant
supprimerfromsuperview code> li>
Sclass1 code>). Méfiez-vous que tout bloc utilisant
auto code> maintient directement une référence forte. Avoir une référence forte au bloc, conduit souvent souvent à un cycle de conservation. Enregistrer
auto code> à un
__ faible code> var et transmettez-le sur le bloc que si vous avez une bonne raison de ne pas le faire. Li>
__ faible code> variable. li>
ol>
Étant donné que votre propriété est faible et que ce n'est toujours pas distribué, recherchez de fortes références à la décoration ou à son propriétaire, UCLASS. Peut-être que vous utilisez directement de l'UCLASS (ou SCLASS), sans __wak de type de type de taille (auto) danse et ce bloc crée de conserver le cycle. Surveillez également les relations parents-enfants et les délégués. Peut-être qu'il y a délégué qui est fort au lieu de faibles ou deux contrôleurs tiennent de fortes références à chaque fois. p>
En outre, si vous souhaitez avoir des réponses plus détaillées, veuillez publier un code plus pertinent. P>
Merci d'avoir souligné le cycle de conservation induite par le bloc. C'est en effet une affaire commune imo. Ajouté que à ma réponse aussi.
J'ai récemment eu les mêmes symptômes - de le résoudre dans mon cas, mon objet agissait en tant que délégué pour un certain nombre d'autres objets, a donc dû libérer l'objet de toutes ses responsabilités déléguées avant qu'elle n'appellerait p>