Как начать новую тему с основной темы в приложении для iPhone - PullRequest
1 голос
/ 21 мая 2011

У меня есть приложение, которое используется для мобильных покупок.У меня есть одноэлементный объект "LocationModel", который получает список адресов из списка pList и преобразует каждый адрес в объект "Location".В объекте местоположения у меня есть переменные "широта" и "долгота".В настоящее время у меня есть метод, который выполняет итерацию по массиву объектов местоположения и проверяет связь с серверами google.api с адресом внутри каждого объекта местоположения, затем возвращаемый тип данных анализируется с использованием анализатора NSXML, а координаты извлекаются и присваиваются каждому объекту местоположения.

Прямо сейчас все это делается в главном потоке, и поэтому графический интерфейс пользователя блокируется, когда приложение запускается в течение нескольких секунд.Я хотел бы начать новый поток в основном методе appdelegate, который выполняет эту работу, получая координаты в фоновом режиме.Но я никогда не занимался многопоточностью, я смотрел руководства по параллельному программированию Apple и руководство по многопоточности, и это кажется ошеломляющим.Может кто-нибудь, пожалуйста, укажите мне некоторые ресурсы, которые просты для понимания и или имеют пример кода.

Большое спасибо

1 Ответ

1 голос
/ 21 мая 2011

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

Хотя этого должно быть достаточно для начала, я рекомендую вам взглянуть на GCD.

...