2010-12-28 3 views
1

У меня есть функция, которая возвращает NSArray, но это создает утечку памяти, так как я не могу освободить массив после возврата, как я могу его отпустить? Спасибо.NSArray - Утечка памяти как?

-(NSArray *)readDataFromDatabase 
{ 

    return NSArray; 

} 

ответ

2

autorelease массива перед возвращением:

- (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

Проверить apple's docs for autorelease

+0

я сделал, вернуться [arrayNextQuestion autorelease]; но он разбивает приложение. – mohacs

+0

, пожалуйста, напишите свой реальный код. – vikingosegundo

+0

понял. Я выделял объекты внутри массива перед массивом. теперь я понял, что autorelease делает все, а не только массив. утечка исправлена. большое спасибо. – mohacs

Смежные вопросы