Использование progressView и обновление экрана - PullRequest
0 голосов
/ 25 марта 2011

Когда мое приложение загружается в первый раз, оно обновляет таблицу SQLite, что занимает около минуты.Чтобы держать пользователя в курсе, я планировал использовать progressView для отображения загрузки данных, но пока процесс запущен, экран остается черным, пока процесс не завершится.Процесс вызывается из viewDidLoad, поэтому мне нужно использовать какой-то поток, чтобы экран мог завершить загрузку в фоновом режиме?

Ответы [ 2 ]

0 голосов
/ 25 марта 2011

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

Итак, чтобы показать индикатор выполнения, вам нужно переместить обновление sqlite в новый поток, да. :)

См. http://www.xprogress.com/post-36-threading-tutorial-using-nsthread-in-iphone-sdk-objective-c/

0 голосов
/ 25 марта 2011

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

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

executeSelectorOnMainThread может использоваться для публикации события в главном потоке.

...