6.10 Retain und Release in einem Setter

Es folgt ein Beispiel für das retain/release-Muster, das Sie beim Ändern eines Wertes in einem Objekt verwenden werden.[49] Nehmen wir an, Sie haben bereits ein Objekt namens greeter vom Typ Greeter erzeugt. Eine idiomatische setGreeter:-Methode mit retain/release-Muster würde so aussehen:

-(void) setGreeter: (Greeter *) newGreeter {
   if (newGreeter != greeter) {
      [newGreeter retain];
      [greeter release];
      greeter = newGreeter;
   }
}

Ihnen wurde das Objekt newGreeter gesendet. Es soll Ihnen gehören, damit Sie etwas damit anstellen können, weshalb Sie es über retain festhalten müssen. Andererseits sind Sie im Begriff, die Variable greeter auf das durch newGreeter referenzierte Objekt zeigen zu lassen.

Zuerst stellen ...

Get Cocoa-Programmierung now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.