J'ai des difficultés à comprendre exactement QUAND les pools autorelease sont créés et publiés dans les applications AppKit. Par exemple, si j'ai une classe ApplicationController qui remplace init, existe-t-il un pool autorelease qui est créé avant son démarrage et est drainé après sa fin?Autorelease pools dans les applications appkit
0
A
Répondre
1
Le thread principal d'une application AppKit exécute un événement NSRunLoop pour traiter les événements. NSRunLoop crée un nouveau pool de libération automatique chaque fois qu'il traite un nouvel événement (ou temporisateur) et le draine une fois que le flux de contrôle est retourné à NSRunLoop. Donc, en substance, chaque passage à travers la boucle d'exécution a un nouveau pool autorelease.
Questions connexes
- 1. Où sont tous les pools autorelease pré-installés dans les applications iPhone?
- 2. Les pools multithread et autorelease fonctionnent-ils ensemble dans Cocoa?
- 3. Quelle est la portée des pools autorelease (imbriqués)?
- 4. Utilisation des pools autorelease pour la méthode fetch
- 5. Comment les objets des pools Autorelease sont-ils gérés dans Objective-C?
- 6. Pools de threads dans CocoaTouch?
- 7. Plusieurs pools de connexions dans Tomcat 7
- 8. Énumération des pools d'applications dans IIS
- 9. Piscines AutoRelease dans un pour le « contexte de
- 10. Autorelease NSString
- 11. Vider les pools de connexions JDBC
- 12. Nombre d'objets dans Autorelease Pool
- 13. Valeur négative pour les pools NonPaged Allocs
- 14. C++ implémentation de l'annulation dans les pools de threads
- 15. UITableViewCell, dequeue et autorelease?
- 16. Autorelease pour CGMutablePathRef?
- 17. stretch PNGs en douceur à Cocoa AppKit
- 18. unarchiveObjectWithFile conserve/autorelease nécessaire?
- 19. Création d'objets autorelease dans le développement iPhone
- 20. Comment importer avec succès Appkit Framework dans iPhone?
- 21. objectif-c autorelease
- 22. Ignorant des événements de l'interface utilisateur dans AppKit
- 23. autorelease provoque piscine accident dans l'application RubyCocoa
- 24. Pools d'applications IIS et multithreading
- 25. Un site plusieurs pools d'applications
- 26. Autorelease et NSString dans Objective C
- 27. Problème aveC#Import <AppKit/AppKit.h> dans Xcode
- 28. autorelease objet précédent par cession
- 29. App Pools IIS - Stop/Start vs Recycle
- 30. Objet Autorelease retourné par NSArray?
Alors quand les objets créés dans init seront-ils libérés? O :-) – cfischer
Une fois que vous avez démarré le runloop, si vous relancez automatiquement un objet, il sera libéré dès que le flux de contrôle reviendra au runloop. Les seules exceptions sont si vous autorelease quelque chose à l'intérieur de 'main()' (qui est en dehors de la boucle d'exécution) ou dans un autre thread. –
Fernando: Ils seront libérés quand ils seront libérés. Les objets que vous ajoutez à un pool d'autorelease sont libérés lorsque le pool se vide. Une piscine que vous créez draine lorsque vous l'égouttez; une piscine créée par la boucle d'exécution s'écoule quand ... eh bien, la réponse vous le dit. –