2010-07-02 2 views

Répondre

15

Lorsque vous ajoutez un objet à la matrice, le nombre de rétention de l'objet augmente de 1. Lorsque vous supprimez cet objet de la matrice, le nombre de retenue diminue de 1 pour l'équilibrer. Mais si vous libérez le tableau, tous les objets recevront automatiquement un message de libération. Vous n'avez donc pas besoin d'appeler removeAllObjects avant de libérer le tableau.

Techniquement, ces deux méthodes ne sont pas identiques. Si vous appelez removeAllObjects, le tableau deviendra vide et tous les objets recevront un message de libération mais le tableau lui-même n'est toujours pas libéré. Le tableau sera publié lorsque vous appellerez la publication.

+0

Alors pourquoi mon NSMutableArray est-il publié lorsque j'appelle removeAllObjects? – jowie

+0

il ne devrait pas être publié dans ce cas. il pourrait y avoir un autre problème. pouvez-vous poster du code afin que nous puissions essayer? – taskinoor

+0

a été publié pour moi, vraiment bizarre. iOS 6, Xcode 4.5.1 – 3lvis

Questions connexes