我阅读了关于NSAutoReleasePool的内容,并了解它使内存管理更容易在iPhone上进行。它在NSObject上可用,因此autorelease消息可用于每个对象实例。此外,我不应该使用autorelease很多,因为NSAutoReleasePool使用缓存内存,如果有大量的自动释放对象,你可能会跳出内存。我的理解是否正确?iPhone:关于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];
}
谢谢。
谢谢铍。我现在很清楚! – applefreak