【发布时间】:2011-04-15 19:19:59
【问题描述】:
我有一个由导航控制器提供的 UIViewController。此 UIViewController 异步加载图像,如下所示:
[self performSelectorInBackground:@selector(downloadData) withObject:nil];
- (void)downloadData {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
LocationDetails * details = [[LondonDatabase database] locationDetails : UniqueID];
NSData * imageData = [NSData dataWithContentsOfURL : [NSURL URLWithString : [details image]]];
picture = [[UIImage alloc ]initWithData:imageData];
[self performSelectorOnMainThread : @selector(updateUI) withObject : nil waitUntilDone : NO];
[pool release];
}
问题是如果这个视图控制器在执行上述方法时从堆栈中弹出,应用程序会崩溃并出现错误:
bool _WebTryThreadLock(bool), 0x61b3950: 试图获取网络锁 来自除主线程或网络线程之外的线程。这可能 是从辅助线程调用 UIKit 的结果。崩溃 现在...
谁能帮忙?
谢谢,
马丁
【问题讨论】:
标签: iphone objective-c cocoa-touch asynchronous sdk