J'ai une classe de contrôleur X qui a une méthode d'occurrence IBAction, par exemple dosomething.Attribution et libération d'une classe
J'ai une autre classe Y qui fait des calculs et a un délégué.
Dans cette méthode dosomething une instance d'une classe Y est créée. Maintenant, où devrait être l'instance de Y libéré.Il @property est la seule solution pour cela.
// Cette action est en classe X
- (IBAction) DoSomething: expéditeur {
(id) Y * y = [[Y alloc] init]; La méthode // init est implémentée dans Y et fait un travail ainsi que ses délégués sont appelés de temps en temps. si nous lâchons y. ce serait un accident. alors où est l'endroit pour libérer y. Est @property la solution en créant une mémoire de temps et en utilisant cela. Y a-t-il un moyen de publier ceci uniquement lorsque la prochaine fois qu'un autre objet est créé plus ancien aurait été détruit avant seulement quand les délégués terminent leur travail après un certain temps.//
// [y release]; C'est un accident.
}
Salut ashish. Juste quelques problèmes sémantiques: Une classe est allouée une seule fois, et elle n'est jamais "libérée" ou désallouée jusqu'à ce que le Runtime d'Objective-C soit retiré de la mémoire AFAIK. Donc, ce que vous vous demandez vraiment, c'est l'allocation et la libération des ** objets **, pas ** des classes **. Dans d'autres langues (en particulier celles qui modélisent des classes par prototypes), cette distinction est sans importance, mais en Objective-C, elle est incroyablement importante: la classe est aussi un objet, qui gère les caractéristiques des objets de lui-même. –
Bonjour Jonathan merci. J'ai peu de doutes n'est-ce pas nécessaire? Si la classe est créée de telle façon qu'elle a ses objets dedans et que la classe dise que Y elle-même est un objet pour autre classe et maintenant il devient nécessaire de libérer la classe Y. être créé et détruit de Y dans X. – ashish