如何设置在ipad中绘制当前pdf页面的NSOperation的高优先级?

时间:2012-03-01 07:15:36

标签: iphone ipad nsoperation nsoperationqueue pdf-rendering

我正在为ipad开发一个自定义PDF阅读器。我已经使用UIScrollView并添加/删除UIViews,其中将显示相应pdf页面的等效缩略图。我正在创建一个NSOperation并在NSOperationQueue添加到滚动视图后立即添加到UIView以在后台生成PDF缩略图。任何时候滚动视图上都会有3个UIViews整个安排与小PDF文件一起正常工作,因为它们渲染速度快,但问题在于大/复杂的PDF页面,当用户在特定页面上离开导航时,根据我的实现,将有3 {{1}同时在后台工作以生成3个缩略图(一个用于上一页,一个用于当前页面,另一个用于下一页)因此整个过程需要很长时间才能显示当前页面。我试图遍历所有实时页面{{ 1}}对象并设置高优先级,以假设在scrollViewDidEndDecelerating:方法中呈现当前页面缩略图,但它不起作用由此产生的效果仍然相同。请提前告诉我一个解决问题的方法,提前谢谢。

1 个答案:

答案 0 :(得分:0)

如果您已将NSOperationQueue设置为在后台工作(即您尚未调用[NSOperationQueue mainQueue]。任务应异步完成,但不会更新主线程上运行的视图优先级无关紧要,因为它与执行操作的线程无关。解决方案是添加:

-(void)main {

    // ** load PDF image **

    [self performSelectorOnMainThread:@selector(insertImageLoaded:)
                            withObject:img
                        waitUntilDone:YES];

}

基本上,你必须记住的是iOS创建了一个小线程池,当使用NCDperations的GCD时更加明显。