2012-03-01 3 views
0

Я разрабатываю пользовательский PDF-ридер для ipad.I принял UIScrollView и добавил/удалил UIViews к нему, на котором будет отображаться эквивалентная миниатюра соответствующей страницы pdf. Я создаю NSOperation и добавлю к NSOperationQueue, как только a UIView добавлен в список прокрутки для создания миниатюры PDF в фоновом режиме. В любой момент времени в представлении прокрутки будет отображаться 3 UIView. Вся компоновка отлично работает с небольшими PDF-файлами по мере их быстрого воспроизведения, но проблема связана с большие/сложные страницы PDF, когда пользователь когда-либо покидает навигацию на определенной странице, согласно моей реализации, будет 3 NSOperations одновременно работать в фоновом режиме для создания 3 миниатюр (один для предыдущей страницы, один для текущей страницы и другой для следующей страницы), таким образом, в течение длительного времени, в целом, отображать текущий p age.I пытался перебрать все объекты live NSOperation и установить высокий приоритет на тот, который, как предполагается, отображает текущую миниатюру страницы в scrollViewDidEndDecelerating: method, но ее не работает, и полученный результат все тот же. Пожалуйста, предложите мне способ пришла моя проблема, спасибо заранее.Как установить высокий приоритет для NSOperation, который рисует текущую страницу pdf в ipad?

ответ

0

Если вы установили NSOperationQueue для работы в фоновом режиме (то есть вы не вызывали [NSOperationQueue mainQueue]. Задачи должны выполняться асинхронно, но не обновлять представление, которое выполняется в основном потоке, до гораздо более позднего времени. Уровень приоритета . не имеет значения, поскольку это не относится к потоку, в котором происходит действие, решение было бы добавить:

-(void)main { 

    // ** load PDF image ** 

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

} 

в принципе, то, что вы должны помнить о том, что IOS создает небольшой пул потоков, который является гораздо более видимый при использовании GCD, который NSOperations.

+0

Спасибо за ответ! – Hariprasad

 Смежные вопросы

  • Нет связанных вопросов^_^