我閱讀了關於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