6
votes

Quel est l'équivalent monoTouch de Dealloc?

Je regarde un exemple en ligne contenant ce code dans Objective-C

    [activeController release];
    [super dealloc];


0 commentaires

4 Réponses :


1
votes

MonoTouch est des ordures recueillies. Avant qu'un objet soit recueilli, le destructeur de l'objet est appelé.

Voici Page de Microsoft de C # Destructors . Je ne sais pas s'il y a une documentation plus pertinente pour les destructeurs à MonoTouch.


0 commentaires

1
votes

Vous n'avez pas besoin d'appeler la libération ou celle-ci, ils sont pris en charge par MonoTouch.


0 commentaires

14
votes

MonoTouch est une poubelle recueillie, de sorte que vous n'avez pas besoin de vous soucier de faire la répartition de la distribution.

Cela étant dit, il y a des moments où vous êtes conscient que vous gardez de grandes ressources en mémoire et que vous souhaitez aider le système en éliminant immédiatement les ressources au lieu d'attendre que le collecteur des ordures d'attente soit lancé.

C'est à ce moment-là que l'appeler dispose est utile: il libère les ressources associées avant que le collectionneur des ordures ne soit nécessaire. Ceci est particulièrement important pour les gros objets, tels que des images, car les images sont stockées sur le tas non gérés, tandis que les références d'objets sont stockées dans le tas géré.

Qu'est-ce que cela signifie que si vous avez une image de 8 mégaoctets: 8 mégaoctets sont stockés dans le tas non géré (géré par objectif-c) et 1 pointeur (4 octets) dans le tas géré. En ce qui concerne le collecteur des ordures de Mono, vous utilisez 4 octets, pas de 8 megs.

C'est donc des moments comme celui-ci lorsque vous pouvez aider le système en appelant le disposer: Vous savez que la variable "myImage" innocente de la recherche pointe sur une importante blob de mémoire.


1 commentaires

Très intéressante !! Une question pour vous. Qu'est-ce que "comme les images sont stockées sur le tas non gérés, tandis que les références d'objets sont stockées dans le tas géré" signifie? Pourriez-vous expliquer pourquoi les images sont insérées dans un tas non géré? Merci d'avance.