Использование LocationManager из другого класса, кроме Main - PullRequest
0 голосов
/ 05 мая 2010

Я новичок здесь, я новичок в разработке iphone, я новичок в Objective-C и я новичок в английском языке, так что не ненавидь меня: P

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

Теперь я даю свойство locationManager своему основному классу и в .m этого класса, именно в методе viewDidLoad, я делаю: [locationManager startUpdatingLocation].

Все отлично работает, но проблема в следующем: Мне нужно знать свою позицию в других классах, кроме основного, но я не думаю, что это хорошая идея - делать [locationManager startUpdatingLocation] каждый раз, когда мне это нужно, не время ли это затрачивается?

Вид моего основного класса всегда ниже других, так что я могу получить обновленное местоположение в других моих классах? Каким образом?

Создание другого экземпляра моего основного класса, по-моему, бесполезно, но после запуска locationManager не останавливается, пока не будет выпущен мой основной класс, не так ли? Поэтому я думаю, что это доступно каким-то образом.

Спасибо за ваше внимание и извините за мой ужасный английский:)

1 Ответ

0 голосов
/ 05 мая 2010

Я собираюсь предположить, что в этом случае вы устанавливаете свой основной класс как CLLocationManagerDelegate. Ваш делегат будет получать locationManager:didUpdateToLocation:fromLocation: сообщений при обновлении местоположения, и в этом методе вы можете использовать NSNotificationCenter для публикации сообщений, для которых экземпляры других классов могут добавлять себя в качестве наблюдателей. См. документацию для NSNotificationCenter для получения дополнительной информации о добавлении наблюдателей и публикации уведомлений.

Чтобы получить начальное местоположение в других классах, кроме основного, вам, вероятно, придется иметь ссылку на основной класс и извлекать его, используя свойство location CLLocationManager, поскольку ваши наблюдатели будут получать уведомления только тогда, когда местоположение изменилось.

...