2010-12-28 9 views
1

Ich habe Funktion, die NSArray zurückgibt, aber es erzeugt Speicherverlust, da ich das Array nach der Rückleitung nicht freigeben kann, wie kann ich es freigeben? Danke.NSArray - Memory Leak wie?

-(NSArray *)readDataFromDatabase 
{ 

    return NSArray; 

} 

Antwort

2

Autorelease das Array vor der Rückkehr:

- (NSArray*) readDataFromDatabase 
{ 
    // option 1: create an auto-released array 
    NSArray* a = [NSArray arrayWithObjects: ...]; 
    return a; 

    // option 2: autorelease manually 
    NSArray* aa = [[[NSArray alloc] initWithObjects: ...] autorelease]; 
    return aa; 
} 
1
+0

ich habe, return [arrayNextQuestion Autorelease]; aber es stürzt die App ab. – mohacs

+0

posten Sie bitte Ihren echten Code. – vikingosegundo

+0

haben es geschafft. Ich habe Objekte innerhalb des Arrays vor dem Array freigegeben. Jetzt verstehe ich Autorelease alles, nicht nur das Array. Leck behoben. Danke vielmals. – mohacs