Mam następujący sposóbKiedy wydać NSString na iPhone
-(NSMutableArray *) getPaises {
NSMutableArray * paises;
paises = [[NSMutableArray alloc] init];
while(get new row) {
NSString *aPais = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
[paises addObject:aPais];
}
return paises;
}
ja nie zwalniając aPais, bo jeśli to zrobić awarii aplikacji. Nie wiem, kiedy i czy mam go wydać gdzieś po użyciu, a jeśli tak, to jak mam to zrobić. Wystarczy zwolnić NSMutableArray wystarczy? Czy muszę go przemierzyć i zwolnić każdy obiekt?
A jeśli nie muszę tego wypuszczać, kto jest odpowiedzialny za wypuszczenie?
Uwaga dotycząca nazewnictwa metod: W kakao metoda o nazwie "getFoo" zwraca foo przez odniesienie: - (void) getFoo: (out NSMutableArray **) outArray. Aby zachować spójność z konwencjami nazewnictwa Cocoa, powinieneś nazwać swoją metodę po prostu "paises". –