2009-04-24 3 views

Répondre

1

Nul est identique à null, mais pour les objets. Cela ne signifie aucun objet.

La syntaxe du point est la même que l'appel de [self setMyOutletProperty: nil].

Vous supprimez simplement un objet de certaines propriétés. Le sens dépend de quelle propriété vous parlez.

7

1.If type de propriété est "copie" ou "conserver", puis

self.myOutletProperty = nul; est la même chose que [myOutletProperty release];

2.Dans type de propriété est "attribuer", puis

self.myOutletProperty = nul; ne rien faire

12

Vous devriez savoir que cette propriété n'est que la syntaxe du sucre.

par exemple:

@property(nonatomic, retain) NSString *myString; 

se convertir à

- (NSString*)myString { 
    return myString; 
} 

- (void)setMyString:(NSString*)newString { 
    if (myString != newString) { 
     [myString release]; 
     myString = [newString retain]; 
    } 
} 

donc si vous déclarez en @property que façon, libérant effectivement

2

Une chose à garder à l'esprit est que même Bien que définir votre propriété à zéro fonctionnera bien, je recommande d'appeler [object release] dans votre méthode dealloc à la place. De cette façon, vous êtes en sécurité si vous écrivez notre propre méthode setter qui fait référence à un autre ivar (qui a peut-être déjà été publié) ou si vous avez des notifications KVO enregistrées sur cette propriété ailleurs.

Questions connexes