проблема при использовании очень быстро - PullRequest
1 голос
/ 31 января 2011

Я занимаюсь разработкой программы для чтения PDF-файлов, в которой я должен загрузить каждую страницу PDF-книги одним касанием пальца. Для каждого пролистывания, которое я увеличиваю на одну страницу, оно работает нормально, если пролистываю медленно. Где-то совсем не работает, если пролистывание происходит так быстро, что происходит сбой.

привет, ребята, я решил вышеупомянутую проблему с помощью ссылки на класс NSobject, в которой всего две строки.

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(loadPagesAccordingToCurrentOrientation) object:nil];
[self performSelector:@selector(loadPagesAccordingToCurrentOrientation) withObject:nil afterDelay:0.5];

Ответы [ 2 ]

1 голос
/ 31 января 2011

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

Строка в

loadSinglePageWithWidth:(float)width andHeight:(float)height

myPageRef = CGPDFDocumentGetPage(...

выглядит особенно нестабильной, даже если она заключена в прагму @synchronized.

Я думаю, что вам нужно учесть эту ситуацию и отменить все существующие рендеры / анимации, прежде чем разрешить запуск следующей.

ТАК не отладчик.

0 голосов
/ 05 декабря 2011

часть кода используется для моей проблемы

[NSObject cancelPreviousPerformRequestsWithTarget: self selector: @selector (loadPagesAccordingToCurrentOrientation) объект: nil];

[self executeSelector: @selectorToRenceCages)withObject: nil afterDelay: 0.5];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...