Существует ли ограничение производительности для использования нескольких экземпляров CLLocationManager
У меня есть как минимум два контроллера в моем приложении, которые в настоящее время используют собственный экземпляр CLLocationManager. Мне любопытно, однако, если использование нескольких экземпляров на самом деле накладывает дополнительную нагрузку на телефон - помимо дополнительной памяти для разных экземпляров.
Будет ли iPhone сканировать GPS-оборудование несколько раз или использовать какую-то диспетчерскую систему, чтобы оборудование было абстрагировано и просто перенаправлено всем слушателям? Я собирался написать свой собственный уровень абстракции для обработки нескольких наблюдателей, но хотел проверить, есть ли какие-либо знания там, чтобы предположить, что это не необходимо.
Ответы
Ответ 1
Я бы сказал, нет, это не будет проблемой или штрафом за выполнение. Наличие нескольких экземпляров CLLocationManager в одном приложении не является более дорогостоящим, чем наличие нескольких приложений в фоновом режиме с помощью CLLocationManagers. ОС настраивает GPS/сотовые радиостанции для минимального использования энергии на основе комбинированных запросов всех диспетчеров CLLocation.
Обязательно остановите обновления местоположения во всех экземплярах CLLocationManager, когда ваше приложение больше не нуждается (т.е. в приложении applicationWillResignActive:), поэтому GPS h/w можно отключить, чтобы сэкономить аккумулятор.