2009-04-24 5 views

Antwort

1

Nil ist dasselbe wie null, aber für Objekte. Es bedeutet kein Objekt.

Dot-Syntax entspricht dem Aufruf von [self setMyOutletProperty: nil].

Sie entfernen also ein Objekt aus einer Eigenschaft. Der Sinn hängt davon ab, von welcher Eigenschaft du sprichst.

7

1.If Objekttyp ist "Kopie" oder "behalten", dann

self.myOutletProperty = nil; ist das gleiche wie [myOutletProperty release];

2.Falls Eigenschaft Typ "zuweisen", dann

self.myOutletProperty = nil; nichts tun

12

Sie sollten wissen, dass die Eigenschaft nur Syntaxzucker ist.

zum Beispiel:

@property(nonatomic, retain) NSString *myString; 

konvertieren zu

- (NSString*)myString { 
    return myString; 
} 

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

so, wenn Sie @property in als Art und Weise zu erklären, ist es eigentlich

2

Eine Sache, die Freigabe im Auge zu behalten ist, dass selbst Obwohl das Setzen Ihrer Eigenschaft auf Null funktioniert, empfehlen wir Ihnen, stattdessen [object release] in Ihrer dealloc-Methode aufzurufen. Auf diese Weise können Sie sicher sein, wenn Sie unsere eigene Setter-Methode schreiben, die auf einen anderen Ivar verweist (der bereits veröffentlicht wurde) oder Sie haben KVO-Benachrichtigungen an dieser Stelle an einem anderen Ort registriert.

Verwandte Themen