Создание слишком большого количества CLLocaitonManager
или увеличение интервалов обновления служб определения местоположения Core сильно разряжает батарею. Поэтому создавать слишком много экземпляров не рекомендуется. Не вижу в этом необходимости.
Хорошей практикой является инициализация одного CLLocaitonManager
в viewController. При переходе к другому viewController остановите обновления текущего CLLocaitonManager
и создайте нового менеджера в новом viewController. Это один шаблон.
Другой шаблон - создать делегата приложения CLLocaitonManager
и сделать его доступным во всем приложении. Это похоже на глобальную переменную. Но, как правило, избегайте глобального объявления этой переменной, поскольку она постоянно потребляет заряд батареи.
Таким образом, если все ваши классы являются частью только одного viewController, создайте только один CLLocaitonManager
и поделитесь обновлениями местоположения. Если нет, то создайте его для каждого viewController.