/ / Objective C: Initialisierung von Objekten [duplizieren] - Ziel-c

Ziel C: Initialisierung von Objekten [duplizieren] - Ziel-c

Wenn ich zum Beispiel ein UIImage erstellen möchte, was wäre der Unterschied in den folgenden zwei Codezeilen:

UIImage *img = [UIImage imageWithCGImage:cgImage];

UIImage *img = [[UIImage alloc] initWithCGImage:cgImage];

Ist es nur ein Fall von "demselben Ende, anderen Mitteln"?

Antworten:

5 für die Antwort № 1

imageWithCGImage: Gibt eine autoreleased Instanz während while zurück initWithCGImage: gibt ein Bild zurück, das Sie selbst freigeben müssen. Normalerweise können Sie sich auf eine Klassenmethode verlassen, um ein automatisch freigegebenes Objekt während einer beliebigen Instanz zurückzugeben init Methode gibt ein Objekt zurück, das Sie freigeben müssen.

Wenn Sie ARC-Code verwenden, tun sie im Prinzip dasselbe, aber sehen Sie sich die entsprechende Frage für weitere Informationen an: Mit ARC, was ist besser: Alloc oder Autorelease-Initialisierer?