Я прочитал о NSAutoReleasePool и понимаю, что это облегчает управление памятью на iPhone.Он доступен в NSObject, поэтому сообщение об автоматическом выпуске доступно для каждого экземпляра объекта.Более того, я не должен часто использовать autorelease, так как NSAutoReleasePool использует кэш-память, и вы можете исчерпать память, если имеется много автоматически выпущенных объектов.Правильно ли мое понимание?
Одна вещь, которую я не понял, в чем заключается цель создания NSAutoreleasePool в явном виде, как это делается следующим способом?Какова его цель здесь?Это как выпустить imgData, img объекты автоматически?Потому что я мог видеть, что эти объекты не освобождаются в этом методе.
- (void)loadImage {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
UIImage *img = [UIImage imageNamed: @"default_user.png"];
if(![[imgURL absoluteString] isEqualToString: @"0"]) {
NSData *imgData = [NSData dataWithContentsOfURL: imgURL];
img = [UIImage imageWithData: imgData];
}
if([target respondsToSelector: action])
[target performSelectorOnMainThread: action withObject: img waitUntilDone: YES];
[pool release];
}
Спасибо.