Ich versuche, ein Array von Zahlen zu formatieren, um in einem Array von CCLabelTTFs in einer Schleife anzuzeigen. NSNumberFormatter gibt ein AutoRelease-Objekt zurück. Ich bin mir nicht ganz sicher, wie ich hier mit der Speicherverwaltung umgehen soll. Jeder Rat würde sehr geschätzt werden.Objective C Autorelease in einer Schleife mit NSNumberFormatter
Hier ist das Problem, ich versuche, herauszufinden:
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSString *tempString;
for(int i = 0; i<10; i++){
tempString = [formatter stringFromNumber:[NSNumber numberWithInteger:NumberArray[i]]];
CCLabelTTFArray[i] = [[CCLabelTTF alloc] initWithString: tempString fontName:@"Arial" fontSize:10.0f];
[tempString release];
}
[formatter release];
Sie müssen nicht "[tempString release];" aufrufen, das ist alles. Die Laufschleife "wird die Objekte für einige Zeit automatisch" freigeben * nachdem * Ihre Methode abgeschlossen ist. – dasblinkenlight
Ich dachte, dass es ein Problem geben könnte, da ich den tempString Zeiger ändere und so den Zeiger auf dieses Objekt verliere. Ich dachte, es könnte einen Speicherverlust verursachen, da die Funktion tempString nach dem Ende der Funktion zwar automatisch freigibt, aber nicht alle vorherigen Zuweisungen von tempString. Ich wollte die [tempString release] nicht machen, mein Fehler. – Ganamede
Ich habe meine Antwort als Antwort auf Ihren letzten Kommentar bearbeitet. – dasblinkenlight