Две вещи идут не так, как надо:
1) запросить наивысшую точность: kCLLocationAccuracyBest
вместо kCLLocationAccuracyHundredMeters
. Не устанавливайте distanceFilter
и не устанавливайте его на ноль.
2) в didUpdateToLocation
, добавьте строку
NSLog(@"Location update: %@",newLocation);
и смотреть вывод файла журнала. Ваше заявление if
означает, что приведенный ниже блок кода запускается только один раз. Я ожидал бы блок else
, который обновит местоположение POI в случае, если home1Annotation
уже существует. Что-то вроде:
} else {
[MyMapAnnotation setCoordinate:homeCoordinate];
}
(но я не знаю вашего класса MyMapAnnotation
, так что это догадка)