Многие CLLocationManager экземпляр - PullRequest
3 голосов
/ 07 ноября 2011

Если я инициирую дополнительный экземпляр CLLocaitonManager, который отслеживает местоположение пользователя, это увеличит нагрузку?Или я должен использовать один экземпляр CLLocaitonManager между классами?

Ответы [ 2 ]

6 голосов
/ 07 ноября 2011

Создание слишком большого количества CLLocaitonManager или увеличение интервалов обновления служб определения местоположения Core сильно разряжает батарею. Поэтому создавать слишком много экземпляров не рекомендуется. Не вижу в этом необходимости.

Хорошей практикой является инициализация одного CLLocaitonManager в viewController. При переходе к другому viewController остановите обновления текущего CLLocaitonManager и создайте нового менеджера в новом viewController. Это один шаблон.

Другой шаблон - создать делегата приложения CLLocaitonManager и сделать его доступным во всем приложении. Это похоже на глобальную переменную. Но, как правило, избегайте глобального объявления этой переменной, поскольку она постоянно потребляет заряд батареи.

Таким образом, если все ваши классы являются частью только одного viewController, создайте только один CLLocaitonManager и поделитесь обновлениями местоположения. Если нет, то создайте его для каждого viewController.

0 голосов
/ 07 ноября 2011

Услуги определения местоположения требуют наличия определенного оборудования на данном устройстве.Вот почему, не имеет значения, сколько экземпляров CLLocationManager создано.Как правило, избегайте глобального объявления этой переменной, поскольку она постоянно потребляет заряд батареи.Другая мудрая остановка и запуск каждый раз, когда вам нужно найти местоположение пользователя.

...