Это просто.Я предполагаю, что вы знакомы по классам CLLocationManager
и MKReverseGeocoder
.Для вашей цели, вероятно, подойдет только мониторинг значительных изменений местоположения (даже если это иногда происходит только для движущихся километров).Это поможет вам сэкономить заряд батареи на устройстве.
Итак, для CLLocationManager's
делегата есть метод под названием locationManager:didUpdateToLocation:fromLocation
, который вы можете использовать.Все, что вам нужно сделать, это использовать обратное геокодирование здесь, чтобы определить реальное название города в зависимости от фактического местоположения, используя класс MKReverseGeocoder
.Кроме того, вы должны проверить местное время на устройстве, сопоставить их и действовать соответственно (например, настроить локальное уведомление, чтобы вывести приложение из фона).