This code gives me a leak – over 100 mb by 100 iterations. If i write [imageName release] it crashes with “message sent to deallocated instance”. I just can’t even think what can be the source of a problem.
NSString* imageName=[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 5)];
imageName =[imageName stringByReplacingOccurrencesOfString:@"-" withString:@"_"];
imageName =[imageName stringByReplacingOccurrencesOfString:@"." withString:@"-"];
[ret setQuestionImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:imageName ofType:@"jpg"]]];
The problem is the strings and images created by these convenience methods are autoreleased, and the autoreleasing doesn’t occur early enough. If you eplicitly release them, however, they’ll be double-freed upon autorelease. Try to wrap all iterations into an autorelease pool: