2009-08-06 11 views
0

J'ai un objet qui est un enfant de UIImageView. Avant toutes ces méthodes de touches, j'ajoute cet objet à la vue supérieure, puis l'utilisateur le déplace. En touche, je veux parfois me libérer. J'ai essayé:Comment libérer self (UIImageView) dans touchesEnded?

- [self release] 

ou

- [self removeFromSuperview] 

Mais toutes ces tentatives se retrouvent dans les exceptions. Quelle est la bonne façon de se libérer?

+1

Ce n'est pas le cas. Lorsque vous ajoutez la super vue, assurez-vous qu'elle est auto-libérée ou libérez la référence juste après l'avoir ajoutée. Lorsque vous faites [self removeFromSuperview], la super vue le lâche pour vous. –

+1

C'est ce que j'ai fait! Je viens de trouver où était le problème. J'ai déplacé [super dealloc] dans la méthode dealloc de la 1ère ligne vers le bas de dealloc et cela fonctionne maintenant :) Merci –

+0

Oh oui, [super dealloc] doit toujours être la dernière chose dans votre méthode dealloc sinon votre objet sera être parti quand la méthode revient :) –

Répondre

0

Vous ne pouvez pas vous libérer. self est la vue principale et si vous voulez supprimer un objet de UIImageView, vous devez le supprimer en utilisant ce nom d'objet. [objNameSubViewOFUIImageView removeFromSuperview]