我有一個小iPhone應用程序,它在第一個視圖上有一個按鈕。當我選擇這個按鈕,我加載了我的新視圖,其上有一個圖像。我目前使用下面的代碼加載從一個單獨的線程在線源的圖像,同時允許用戶繼續控制應用:iPhone上的NSAutoreleasePool問題
- (void) loadImageTest
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSURL *url = [[NSURL alloc] init];
url = [NSURL URLWithString:logoPath];
NSData *data = [[NSData alloc] init];
data = [NSData dataWithContentsOfURL:url];
loadingImage = [UIImage imageWithData:data];
titleLogoImage.image = loadingImage;
//[pool drain];
[pool release];
}
這是從在新視圖中的這行代碼中調用INIT:
[NSThread detachNewThreadSelector:@selector(loadImageTest) toTarget:self withObject:nil];
現在這工作正常(ISH),但如果我收了新的觀點,然後快速連續地重新裝入一個新的(或者只是後病房在某些情況下),它會彈了出來用傳統的EXC_BAD_ACCESS。我確信這是由於線程池中的代碼引起的,但任何人都可以看到爲什麼會發生這種情況?
謝謝
殭屍會救你。 http://www.cocoadev.com/index.pl?NSZombieEnabled – 2010-07-28 22:46:22