для вызова 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: вызывается, но только после того, как я вычислил все координаты моих аннотаций, а не раньше!