2010-08-27 8 views
0

J'ai besoin de créer deux instances de deux classes à l'intérieur d'un contrôleur de vue qui restent actives pendant toute la durée d'ouverture de la vue. A l'intérieur de l'une de ces classes, j'ai besoin de créer un NSString et un NSDate qui reste actif pendant toute la durée de vie de la classe.Comment déclarer des variables dans une classe qui ne sont pas libérées?

Comment faire?

+0

Techniquement, vous posez la mauvaise question, puisque votre code peut toujours libérer ou même surliguer un objet même si vous et/ou un autre code l'avez conservé. Ce que vous voulez probablement demander est de savoir comment conserver vos objets retournés instanciés ou divers afin qu'ils ne soient pas autoeleased. – hotpaw2

Répondre

2

définir 2 variables dans la classe:

NSString* s; 
NSDate* date; 

garder trop variables en vie alors que la vue est visible:

dans viewDidAppear:

s = [@"A string" retain]; 
d = [[NSDate date] retain]; 

dans viewDidDissapear:

[s release]; 
[d release]; 

Si vous en avez besoin pendant toute la durée de vie de la classe, déplacez le code vers les méthodes init et dealloc.

+0

pour une raison quelconque, cela déclenche une exception NSException lorsque je le fais dans ma propre classe. – Chris