У меня есть представление карты, определенное в IB, и оно настроено на отображение местоположения пользователя.
В моем приложении в -viewDidAppear я запрашиваю self.mapView.userLocation.location.coordinate и возвращается с такими безумными значениями, как:
широта : 4.8194501961644877e-49
долгота : 2.2993313035571993e-59
Однако в следующий раз -viewDidAppear (после того, как я просто перешел в другое представление с вкладками и затем вернулся к этому), свойство userLocation содержит точно правильные значения для моеготекущее местоположение.
Кажется, что во время моего первоначального вызова свойство userLocation не было инициализировано, но, несмотря на то, что я прочитал документацию Apple, я не вижу никаких предупреждений, где говорится, чтоэто свойство действительно только после выполнения xxx.
Есть ли что-то, что должно произойти до того, как userLocation допустимо для использования, или я должен просто использовать CLLocationManager и спросить еговместо этого?
Заранее спасибо за любую помощь.
К сожалению, предложение Томаса не помогло.С тех пор я обнаружил:
Если показывает, что пользовательское расположение равно НЕТ, то userLocation никогда не устанавливается правильно, а -MapView: didUpdateUserLocation: никогдаследовательно, я никогда не получаю разумного значения местоположения.
Итак, чтобы получить местоположение пользователя, я должен установить для showsUserLocation значение YES, однако это означает, что после того, как все мои аннотации былиПосле добавления к представлению (без учета местоположения пользователя) я вычисляю требуемый интервал, чтобы охватить их все и отобразить все с правильным уровнем масштабирования.Однако после того, как я это сделаю, вид переместится в сторону, так как вид карты автоматически отобразит местоположение пользователя в виде синей капли!Поскольку он никогда не включался в аннотации для определения уровня масштабирования, я не могу включить его в свои расчеты.Aaargh!
Обратите внимание, что когда показывает, что UserLocation равен YES, тогда вызывается -MapView: didUpdateUserLocation: , но только после того, как я вычислил все координаты моих аннотаций,не раньше!