Я только что начал с быстрой, и у меня возникла проблема. Я прочитал различные темы о местонахождении пользователя и наборах карт и не могу решить мою проблему. У меня был код, и я мог создавать регионы по своему усмотрению, и я мог бы увеличить его местоположение.Swift - проблемы с местоположением пользователя
Я вернул код обратно, чтобы попытаться найти проблему, а оставшийся код ниже. Проблема в том, что пользовательская позиция возвращается как значение nil, когда вы пытаетесь запустить симулятор, который вызывает сбой приложения. Что я делаю неправильно, так как я завершил авторизацию местоположения пользователя, поэтому он не должен возвращаться в нуль. В какой-то момент у меня был код для увеличения местоположения пользователя ПОСЛЕ первоначальной настройки региона в другом месте и вызова функции для масштабирования, но если вы сначала попытаетесь вызвать местоположение пользователя, то всегда всегда ноль, чтобы вы не могли инициализировать масштабирование карты в где пользователь - это то, что я хочу.
import UIKit
import MapKit
class MapController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
// MARK: - location manager to authorize user location for Maps app
var locationManager = CLLocationManager()
func checkLocationAuthorizationStatus() {
if CLLocationManager.authorizationStatus() == .AuthorizedWhenInUse {
mapView.showsUserLocation = true
} else {
locationManager.requestWhenInUseAuthorization()
}
}
override func viewDidLoad() {
super.viewDidLoad()
checkLocationAuthorizationStatus()
var userLocation = locationManager.location
println("\(userLocation.coordinate.latitude)")
println("\(userLocation.coordinate.longitude)")
// Do any additional setup after loading the view.
}
}
я понял, что система буквально не было времени, чтобы найти место и фиксируют его. Спасибо хоть. –
@BradHoult, если вам нужно получить доступ к местоположению пользователя через 'CLLocationManager', вы не должны полагаться на предположение, что для поиска пользователя требуется X секунд. Это, безусловно, приведет к сбоям, поскольку время, необходимое для поиска пользователя, зависит от многих вещей, которые вы не можете контролировать. Поэтому я настоятельно рекомендую вам использовать мое предложение. Однако, если все, что вам нужно достичь, - это найти пользователя на вашей карте, тогда «mapView.showsUserLocation» достигнет того, чего вы хотите, и вы правы - ему просто нужно некоторое время :) –
Я сделал это совершенно по-другому , как вы увидите, если вы ответите на мой следующий вопрос здесь :-) –