我正在使用一个从NSOperation继承的对象进行下载。我已经阅读了文档,当我的操作完成时,我必须调用
[self.delegate performSelectorOnMainThread:@selector(operationDidFinish:) withObject:self waitUntilDone:YES];方法。它需要在主线程上调用,因为UIKit不是线程安全的,文档中提到了在这些非线程安全框架的情况下。在委托方法中,我绘制了一个pdf或图像,但因为它是在主线程上绘制的,所以在绘制完成之前,用户界面会非常迟缓。也许你能给我一个避免这个问题的好方法?
发布于 2010-04-15 19:36:13
我假设您正在下载图像数据,对其进行解码,然后渲染图像。最后一步,渲染,必须发生在主线程上。你能把解码部分移到你的下载线程上吗?例如,使用CGImage调用来解码png或jpeg,这样在调用operationDidFinish之前就有了可以使用的CGImageRef。如果您可以将PDF作为图像处理,那么转换它比在主线程中解码它更好。
https://stackoverflow.com/questions/2644758
复制相似问题