Мне нужен способ получить моего пользователя Текущее местоположение.
Поскольку у пользователя есть друзья и у них также есть данные о местоположении, я думаю, что правильный путь — поместить поле местоположения в базу данных основных данных, как в Друг
, так и в Пользователь.
объектов.
Вот что я подумал:
У меня есть какой-то менеджер местоположений синглтон, который всякий раз, когда мне нужно точное местоположение, я говорю ему, чтобы он запускал обновления CLLocationManager
. (за что отвечает мой менеджер)
Менеджер сохранит местоположение в поле user.location в базе данных, а контроллеры, заинтересованные в информации user.location, зарегистрируются с помощью KVO для этих данных.
Для меня это звучит хорошо, кроме того факта, что я должен получить доступ к этому синглтону местоположения с каждого контроллера, которому нужны точные местоположения (чтобы сказать ему, чтобы он начал генерировать местоположение, я не хочу, чтобы обновления местоположения были включены все время). Кроме того, я стараюсь не загрязнять свой код кучей однотонных вызовов.
Я думаю, что, возможно, было бы разумнее иметь диспетчер местоположения в качестве свойства внутри моего класса User
.(очевидно, если у меня сейчас в памяти несколько пользователей, все они будут использовать один и тот же менеджер местоположений синглтон)
Я добавлю еще один метод в пользовательский класс и назову его "StartGettingLocation
", и теперь всякий раз, когда какому-либо контроллеру требуется текущее точное местоположение, он может сделать одно из следующих действий:
StartGettingLocation
» и KVO его поле местоположения.Это звучит правильно?
Если да, то в чем я не уверен, так это в том, можно ли добавить нового члена MyLocationManager в мой класс User (который является подклассом на manageObject)? Каков правильный способ сделать это?
Спасибо