I have the following method
-(NSMutableArray *) getPaises {
NSMutableArray * paises;
paises = [[NSMutableArray alloc] init];
while( get new row
As epatel said, you don't need to release that particular string. If you wanted to be more proactive, you could do this instead:
-(NSMutableArray *) getPaises {
NSMutableArray * paises;
paises = [[[NSMutableArray alloc] init] autorelease];
while( get new row ) {
NSString *aPais = [[NSString alloc] initWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
[paises addObject:aPais];
[aPais release];
}
return paises;
}
In summary:
[[NSString alloc] initWith...] -> You must release or autorelease.
[NSString stringWith...] -> No need to release.
-- Edit: Added autorelease
for paises, as you are returning it. When you return an object, always autorelease it if you have alloc&init'd it.
stringWithUTF8String:
returns an autorelease string which will be released automatically by Cocoa in the next eventloop. But the string is also retained in the array when you do addObject:
...so as long as it is in the array it will be retained.