Я разрабатываю пользовательский 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
A
ответ
0
Если вы установили NSOperationQueue
для работы в фоновом режиме (то есть вы не вызывали [NSOperationQueue mainQueue]
. Задачи должны выполняться асинхронно, но не обновлять представление, которое выполняется в основном потоке, до гораздо более позднего времени. Уровень приоритета . не имеет значения, поскольку это не относится к потоку, в котором происходит действие, решение было бы добавить:
-(void)main {
// ** load PDF image **
[self performSelectorOnMainThread:@selector(insertImageLoaded:)
withObject:img
waitUntilDone:YES];
}
в принципе, то, что вы должны помнить о том, что IOS создает небольшой пул потоков, который является гораздо более видимый при использовании GCD, который NSOperations.
Спасибо за ответ! – Hariprasad