2012-02-02 2 views
1

Si je fais ceci:La propriété peut conserver un objet autoreleased?

@property (nonatomic, retain) SomeObject* someInstance;

Pourquoi ne pas someInstance toujours là même quand j'utilise un initialiseur autorelease là-dessus?

Par exemple:

someInstance=[SomeObject autoreleaseMethod];

je me attends someInstance de le conserver dans ce cas afin que vous puissiez utiliser someInstance plus tard, mais est-ce pas vrai?

Répondre

3

Votre propriété ne conservera l'objet que si vous utilisez son setter. Dans votre exemple, vous avez oublié le self.:

self.someInstance = [SomeObject autoreleasedObject]; 
+0

ah! bien sûr. Je vous remercie. si j'utilise une méthode 'alloc', je devrais relâcher deux fois si j'utilise le droit' self.property'? – johnbakers

+0

Une fois que vous avez fini de l'utiliser, dans la portée vous l'avez créé. Une fois quand (dans cet exemple) le self est fait en l'utilisant, habituellement dans sa méthode dealloc. –

Questions connexes