NSOperationQueue чувствует себя медленнее, чем выполнение кода в основном потоке - PullRequest
0 голосов
/ 11 марта 2012

Я делаю твик (отображающий некоторые изображения из Интернета) для ios, и я пытаюсь использовать NSOperationQueue. Сначала я запустил код в главном потоке, чтобы посмотреть, как он выглядит. Это длилось ± 5 секунд, чтобы показать каждое изображение (пользовательский интерфейс застыл). Затем я попытался использовать NSOperationQueue для запуска того же кода, но он длился + 10 сек для каждого изображения (хорошо, что пользовательский интерфейс не зависал). Есть идеи? Это просто так?

1 Ответ

1 голос
/ 11 марта 2012

В iOS обновление пользовательского интерфейса происходит в основном потоке, поэтому, как только вы закончите работу с очередью операций, вам нужно будет сообщить основному потоку об обновлении пользовательского интерфейса, но в вашем случае, как вы сказали, он обновился, но с задержкой.

Вам нужно будет вызвать performSelectorOnMainThread:withObject:waitUntilDone: из операции (в конце, когда данные загружаются), и в селекторе этого основного потока вы выполните обновление пользовательского интерфейса.

...