Wenn ich ein Objekt in einer Methode, 'getASprocket' zuweisen und es so nennen, wird es hier ein Leck geben?Speicherverwaltung und Leistung
Sprocket *sprock = [Sprocket getASprocket];
// store this returned value as an ivar
ivarSprock = [sprock retain];
// release the originally acquired object
[sprock release];
Das Kettenrad Objekt wird auf diese Weise zugeordnet und zurückgegeben:
– (Sprocket *)getASprocket {
Sprocket *sprocket;
sprocket = [[Sprocket alloc] init];
return [sprocket retain];
}
Auch aus '[sprocket retain];'
würde innerhalb der 'aSprocket' Methode 'return [sprocket autorelease];'
schlechtere Performance Hit zu ändern?
Es sieht aus wie Sie einen Tippfehler gemacht haben; Das "-" sollte ein "+" sein, da Sie es als Klassenmethode und nicht als Instanzmethode verwenden. – Michael
@Michael, während Ihr Kommentar in den meisten Fällen korrekt ist, ist dies technisch korrekt, sogar mit einem "-" –