2009-04-24 9 views
2

Je veux comprendre dans quels cas je dois me soucier de la gestion de la mémoire quand il s'agit de propriétés. J'ai noté quelque chose d'un site dont je ne me souviens plus, où ils ont dit que si une propriété a une valeur autre que NSNumber ou NSValue, et si elle n'a pas de setter, alors UIKit relèverait automatiquement l'ancienne valeur et conserverait la nouvelle. Bien que je ne comprends pas pourquoi UIKit définirait n'importe quoi s'il n'y a pas setter (directement à la valeur, je devine).Si ma propriété n'a pas de setter (en lecture seule), est-il vrai que UIKit conserve la valeur si ce n'est pas NSNumber ou NSValue?

Répondre

0

Si la propriété est déclarée comme:

@property(retain) NSString *prop; 

Il libérera l'ancienne valeur lorsque vous attribuez un nouveau.

Cependant, assurez-vous que vous relâchez votre méthode de dealloc ainsi:

- (void)dealloc { 
    [prop release]; 

    [super dealloc]; 
} 
0

Vous devez (re) lire le Memory Management Guide for Cocoa. Les règles de gestion de la mémoire pour les propriétés sont les mêmes que pour tous les autres objets.

Questions connexes