Ich habe im Anschluss an die in der Kopfzeile:Wie wird Retain Setter mit @synthesize implementiert?
@property (nonatomic, retain) UIView *overlay;
Und bei der Umsetzung:
@synthesize overlay;
Dann:
UIView *tempOverlay = [[UIView alloc] initWithFrame:CGRectMake(160.0f, 70.0f, 150.0f, 310.0f)];
self.overlay = tempOverlay;
[tempOverlay release];
Sind nicht die tempOverlay
Variable oben überflüssig? Kann ich nicht tun, nur:
self.overlay = [[UIView alloc] initWithFrame:CGRectMake(160.0f, 70.0f, 150.0f, 310.0f)];
Wenn ein synthetischer beibehaltener Setter so aussieht, wie Sie ihn haben, was passiert beim ersten Mal, wenn der Wert gesetzt wird? Wenn Sie versuchen, den alten Wert zuerst freizugeben, stürzt es nicht mit BAD ACCESS ab? Oder erhalten alle Eigenschaften automatisch eine anfängliche Retain-Anzahl von 1? – ma11hew28
Sollte Methode 2) jemals verwendet werden, vielleicht beim ersten Mal? Wenn Sie es jedoch festlegen, nachdem es bereits festgelegt wurde, wird der alte Wert nicht freigegeben (sofern nicht explizit angegeben). Also, das würde einen Speicherverlust verursachen, richtig? – ma11hew28
Anfangs ist der Wert null, und das Senden einer Nachricht an null (einschließlich Retain/Release) ist ein Nein, das nil zurückgibt. – jv42