Quel est le besoin de conserver un
NSObject
dans l'application ios? Quelle est la différence entreretainCount==1
,retainCount=2
, ..... etc.Quelques doutes sur la mémoire-retenir dans ios applicato?Comment les propriétés peuvent gérer la rétention et la libération de la variable d'instance?
Lorsque je suis retenue/relâche
NSObject
, le nombre de retenue augmente/diminue de un, que se passe-t-il exactement dans la mémoire?
Répondre
- Fidéliser un objet indique que vous prenez possession de cet objet. Vous devez donc le relâcher une fois que vous avez terminé. RetainCount = 1 indique qu'il est fortement référencé à partir d'un endroit.
- Si retainCount = 2, il est fortement référencé à partir de deux endroits.
- Les propriétés, selon qu'il s'agit d'une propriété de conservation, de copie ou d'affectation, traitent différemment la gestion de la mémoire
- Le nombre de retenues indique uniquement le nombre de références de chaîne pour l'objet. Comme ling étant supérieur à 0, l'objet n'est pas retiré de la mémoire. Une fois qu'il devient 0, l'obj est supprimé de la mémoire (dealloc d'objet THT est appelé)
EDIT:
- Si elle est de conserver la propriété, chaque fois que vous définissez une propriété conserver en utilisant le '.', puis l'ancienne valeur est libérée, la nouvelle valeur est conservée et affectée à la propriété. La même chose se produit avec la copie, juste que la nouvelle valeur est envoyée une copie au lieu de retenir. S'il s'agit d'une propriété assign, la nouvelle valeur est directement affectée à la propriété (pas de libération, pas de conservation)
Si le nombre de retenue augmente/diminue de un changement de mémoire? –
si vous développez le deuxième point. C'est une référence forte d'un endroit ....? –
Aucun changement de mémoire tant que le nombre de rétention est supérieur à 0. –
Peut-être que vous devriez jeter un coup d'oeil ici: Memory management et ici Advanced Memory management
Hope this helps.
merci. J'ai lu ce document deux fois ... –
- 1. Quelques doutes sur la gestion de la mémoire dans ios applicato?
- 2. Quelques doutes sur une contrainte
- 3. Quelques doutes sur les services web RESTful?
- 4. Quelques doutes sur HDFS, HBase et Hive
- 5. CodeIgniter: quelques doutes sur HMVC et Vues
- 6. Quelques doutes avec Shell Scripting.
- 7. Opacité en CSS, quelques doutes
- 8. Quelques doutes sur Java SWING et Swing Application Framework
- 9. J'ai quelques doutes avec quelques lignes de AngularJS code
- 10. Doutes sur la portée Python
- 11. Quelques doutes sur la mise en œuvre des pages d'erreur personnalisées dans Web2Py
- 12. Quelques doutes liés aux utilisateurs backend en Typo3 6.1.1
- 13. Quelques doutes sur l'utilisation de la tâche Ant pathconvert. Ce qu'il fait?
- 14. Quelques doutes élémentaires sur l'exécution des programmes MapReduce utilisant mrjob sur Amazon EMR
- 15. javascript/backbone js passer des paramètres aux fonctions - quelques doutes
- 16. Doutes sur FileOutputStream
- 17. Doutes sur les manifestes
- 18. Cacher UINavigationBar pour quelques pages sur iOS
- 19. Doutes sur la classe de base d'accès
- 20. Doutes sur la méthode de débogage LLDB
- 21. Doutes sur la conception de projet CakePHP
- 22. Doutes sur l'héritage multiple dans .net
- 23. Doutes sur l'application Radio Internet dans Blackberry
- 24. Doutes sur les notifications dans l'iPhone
- 25. android dans la facturation app comment démarrer le service et quelques doutes
- 26. Doutes sur les privilèges d'administrateur
- 27. doutes de la feuille Excel dans VBScripting
- 28. Android: quelques doutes sur l'utilisation du cache pour afficher des images
- 29. Doutes dans l'index Oracle
- 30. Doutes dans le code Python
Veuillez lire ceci à propos de retainCount: http://www.friday.com/bbum/2011/12/ 18/retaincount-is-inutiles/ – sosborn
Merci à beaucoup, c'est très beau document ... –