Приведенный ниже код работал только один раз, и теперь внезапно он не показывает точку интереса (POI). Я попробовал это на двух разных машинах и получаю такое же поведение. Это то, что меня озадачило, это код или настройки моего симулятора.iOS Simulator не обновляет местоположение
Я очистил проект, убедившись, что у меня был симулятор по обычаю. У меня была печать долготы и широты, и внезапно она не печатается на консоли.
импорт UIKit импорт MapKit импорт CoreLocation
класс MapViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet var map: MKMapView!
var manager:CLLocationManager!
var latitude:Double = 0.0
var longitude:Double = 0.0
var location:Double = 0.0
override func viewDidLoad() {
super.viewDidLoad()
print("init")
manager = CLLocationManager()
manager.delegate = self
manager.desiredAccuracy - kCLLocationAccuracyBest
manager.requestWhenInUseAuthorization()
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print("test test test")
let userLocation:CLLocation = locations[0]
self.latitude = userLocation.coordinate.latitude
self.longitude = userLocation.coordinate.longitude
let request = MKLocalSearchRequest()
request.naturalLanguageQuery = "Army Recruiting"
request.region = MKCoordinateRegionMakeWithDistance(userLocation.coordinate, 1600, 1600)
MKLocalSearch(request: request).startWithCompletionHandler { (response, error) in
guard error == nil else { return }
guard let response = response else { return }
guard response.mapItems.count > 0 else { return }
let randomIndex = Int(arc4random_uniform(UInt32(response.mapItems.count)))
let mapItem = response.mapItems[randomIndex]
mapItem.openInMapsWithLaunchOptions(nil)
}
print("\(self.longitude) \(self.latitude)")
}
-------------------- --update расположение 1 --------------------
Обновление с помощью имитатора
Я заметил, что ниже функция не работает:
func locationManager(manager: CLLocationManager, didUpdateLocations
locations: [CLLocation])
--------------------- Update 2 ------ --------------
Приложение работало, а затем остановилось. Не уверен что происходит. Да я добавил NSLocationWhenInUseUsageDescription и NSLocationAlwaysUsageDescription
. LocationManager func не выполняет. Я подтвердил, поставив print() в функции. Я не уверен, почему он не работает. – Drew1208
Используется ли приложение для служб определения местоположения? – RichAppz
Только запрос вызывает, похоже, что вы не настроили NSLocationAlwaysUsageDescription или NSLocationWhenInUseUsageDescription (в вашем случае) в вашем файле .plist. Перейти к информации о вашей цели и добавить строку с NSLocationWhenInUseUsageDescription и String будет причиной, по которой вы хотите, чтобы использование служб местоположения для приложения – RichAppz