для вызова didUpdateUserLocation необходимо иметь ... mapView.showsUserLocation = TRUE;

я есть вид карты, определенный в IB, и он настроен на отображение местоположения пользователя.

В моем приложении, в-viewDidAppearЯ запрашиваю self.mapView.userLocation.location.coordinate, и он возвращается с безумными значениями, такими как:

широта: 4.8194501961644877e-49
долгота: 2.2993313035571993e-59

Однако в следующий раз-viewDidAppear вызывается (после того, как я просто перешел в другое представление с вкладками, а затем вернулся к этому)userLocation Свойство содержит точно правильные значения для моего текущего местоположения.

Кажется, что во время моего первого звонкаuserLocation свойство не было инициализировано, но, несмотря на то, что я прочитал документацию Apple, я не вижу никаких предупреждений, где говорится, что это свойство действительно только после выполнения xxx.

Есть ли что-то, что должно произойти раньше?userLocation действительно для использования или я должен просто использоватьCLLocationManager и спросить вместо этого?

Заранее благодарю за любую помощь.

К сожалению, предложение Томаса не помогло. С тех пор я обнаружил:

ЕслиshowsUserLocation НЕТ, тогдаuserLocation никогда не устанавливается правильно и-MapView: didUpdateUserLocation: никогда не вызывается, следовательно, я никогда не получаю разумного значения местоположения.

Итак, чтобы получить местоположение пользователя, я должен установитьshowsUserLocation на ДА, однако это означает, что после того, как все мои аннотации были добавлены в представление (без учета местоположения пользователя), я затем вычисляю требуемый интервал, чтобы охватить их все, и отобразить их все с правильным уровнем масштабирования. Однако после того, как я это сделаю, вид переместится в сторону, так как вид карты автоматически отобразит местоположение пользователя в виде синей капли! Поскольку он никогда не включался в аннотации для определения уровня масштабирования, я не могу включить его в свои расчеты. Aaargh!

Обратите внимание, что когдаshowsUserLocation тогда ДА, то-MapView: didUpdateUserLocation: вызывается, но только после того, как я вычислил все координаты моих аннотаций, а не раньше!