Я пытаюсь получить и отобразить местоположение пользователя, но симулятор загрузит только страну, в которой я нахожусь. Я установил необходимые разделы info.plist (конфиденциальность - местоположение, когда используется и всегда), связал mapView вMain.storyoard делегату (перетаскиваемый элемент управления в View Controller Icon), прикрепил IBOutlet (проверил его, чтобы убедиться, что он правильно подключен) и записал этот код в viewController.swift:
import UIKit
import CoreLocation
import MapKit
class ViewController: UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var mapView: MKMapView!
var locationManager = CLLocationManager()
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
mapView.mapType = MKMapType.standard
let location = locations[0]
let myLocation: CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude)
let span = MKCoordinateSpanMake(0.05, 0.05)
let region = MKCoordinateRegion(center: myLocation, span: span)
mapView.setRegion(region, animated: true)
self.mapView.showsUserLocation = true
}
override func viewDidLoad() {
super.viewDidLoad()
self.locationManager.requestWhenInUseAuthorization()
if CLLocationManager.locationServicesEnabled() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.startUpdatingLocation()
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Япросто намочил ноги с MapKit, и эта проблема удерживала меня в течение довольно долгого времени.Буду признателен за любую помощь.