Если можно изменить MyClass2, самый легкий способ обратиться, это, объявляют переходный процесс свойства.
Насколько мне известно, карта не будет пытаться получить местоположение пользователя, пока оно не отобразится. Хороший тест для этого - когда вы получаете диалоговое окно с вопросом, нормально ли приложение определять местоположение пользователей? По моему опыту, это всегда возникает только после того, как карта отображается на экране.
Лучший способ решить эту проблему, если у вас должно быть местоположение при запуске, - реализовать классический код обработчика Core Location и получить местоположение из этого первоначально. Вы можете перестать получать обновления оттуда, как только карта будет запущена, и получить дальнейшие изменения оттуда (хотя, если вам нужны постоянные обновления, вам лучше просто придерживаться стандартных обновлений Core Location. Если вы думаете об этом, когда у вас есть "показывает пользователю место расположения"
Из документа по CLLocation , если точность по горизонтали или по вертикали отрицательная, это означает, что невозможно найти значение. Я подозреваю, что вот что здесь происходит. Имейте в виду, что если вы посмотрите один раз, это может дать вам приблизительное последнее известное местоположение, прежде чем когда-либо улучшится результат точности.
Горизонтальная точность Широта координаты и долгота определить центр круг, и это значение указывает радиус этого круга. Отрицательный значение указывает, что координата широта и долгота неверны.
Координаты следует получать из CoreLocation вместо MapKit. MapView отобразит местоположение пользователя после того, как он действительно получит текущее местоположение. Перед тем как местоположение определено, широта и долгота устанавливаются равными 0. 3
Вы должны создать instace CLLocationManager, установить делегат. Вы получите уведомление, когда местоположение будет определено.
Перед тем, как местоположение определено, широта и долгота устанавливаются равными 0. 3Вы должны создать экземпляр CLLocationManager, установить делегат. Вы получите уведомление, когда местоположение будет определено.
Перед тем как местоположение определено, широта и долгота устанавливаются равными 0. 3Вы должны создать instace CLLocationManager, установить делегат. Вы получите уведомление, когда местоположение будет определено.
If you try to get user co-ordinates in viewDidLoad() method, it will always give 0,0 result, because it is not yet initialized.
You should take a look at "Where Am I" sample code form Apple site. It explains what you need. You need to use CLLocationManager class. You will also need the method
*-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation*
This method will be called automatically every time when user location is updated. If you are using simulator, then this method will be called only once and it will return some default co-ordinates.
Hope it helps.
В этом ответе объясняется, как настроить отображение карты с местоположением пользователя:
Как инициализировать MKMapView с указанным расположением пользователя?
Добавьте это в секцию viewDidLoad
mapView.showsUserLocation = YES;