Существует ли какое-либо снижение производительности за использование нескольких экземпляров CLLocationManager? - PullRequest
14 голосов
/ 01 сентября 2010

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

Будет ли iPhone пинговать аппаратное обеспечение GPS несколько раз, или он использует какую-то диспетчеризацию, чтобы аппаратное оборудование было отвлечено и просто отправлено всем слушателям?Я собирался написать свой собственный уровень абстракции для работы с несколькими наблюдателями, но хотел проверить, есть ли какие-либо знания, чтобы предположить, что в этом нет необходимости.

1 Ответ

11 голосов
/ 01 сентября 2010

Я бы сказал, нет, это не будет проблемой или ухудшением производительности.Наличие нескольких экземпляров CLLocationManager в одном приложении обходится не дороже, чем использование нескольких приложений в фоновом режиме с помощью CLLocationManager.ОС настраивает GPS / сотовые радиостанции для минимального потребления энергии на основе объединенных запросов всех CLLocationManager.

Обязательно останавливайте обновления местоположения во всех экземплярах CLLocationManager, когда ваше приложение больше не нуждается в них (т. Е.в приложении WillResignActive :), так что GPS ч / б можно отключить для экономии заряда батареи.

...