У меня MKMapView настроен так:
mapView = [[MKMapView alloc] init];
[mapView setMapType:MKMapTypeStandard];
[mapView setShowsUserLocation:YES];
[mapView setDelegate:self];
Затем я инициализирую CLLocationManager и вызываю startUpdatingLocation.
Я использую iSimulate для отправки данных GPSс моего телефона на симулятор, который, кажется, работает, так как метод делегата CLLocationManager вызывается с моими правильными GPS-координатами.Однако MKMapView никогда не перемещает синюю точку от Купертино.
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation {
NSLog(@"Did Update Location = %f / %f", [newLocation coordinate].latitude, [newLocation coordinate].longitude);
NSLog(@"Current User Location = %f / %f", [[mapView userLocation] coordinate].latitude, [[mapView userLocation] coordinate].longitude);
}
Вышеприведенный метод выдает следующее:
>>> Did Update Location = 40.740100 / -73.989900 # Correct
>>> Current User Location = 37.331693 / -122.030457 # Cupertino... Incorrect
Даже если я вручную обновляю координату userLocation, используя:
[[mapView userLocation] setCoordinate:[newLocation coordinate]];
Точка все еще сидит на Купертино.Я что-то упустил?