Я новичок в Swift, я хочу показать местоположение пользователя на карте, я добавил MKMapView и добавил розетку, вот мой код:
import UIKit
import Foundation
import MapKit
import CoreLocation
class ViewController: UIViewController ,CLLocationManagerDelegate{
@IBOutlet weak var map: MKMapView!
let manager = CLLocationManager()
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
let location = locations[0]
let span: MKCoordinateSpan = MKCoordinateSpanMake(0.01,0.01)
let myLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(location.coordinate.latitude, location.coordinate.longitude)
let region:MKCoordinateRegion = MKCoordinateRegionMake(myLocation, span)
map.setRegion(region, animated: true)
self.map.showsUserLocation = true
}
override func viewDidLoad() {
super.viewDidLoad()
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.requestWhenInUseAuthorization()
manager.startUpdatingLocation()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Но когда я запускаю приложение на симуляторе, оно показывает мне другое место в США. Но я из другого места, которое даже не близко к США.
Ваш код правильный, если вы создаете приложение на реальном устройстве. Но вам нужно указать свое местоположение для симулятора. В верхнем меню симулятора выберите «Отладка», затем найдите раздел «Местоположение» и установите пользовательское местоположение.
@HastiRanjkesh хорошо, спасибо





Потому что симулятор использует поддельное местоположение для тестирования. вы также можете изменить это местоположение См. на изображении (https://i.stack.imgur.com/2GN7x.png). Если вы работаете на реальном устройстве, оно показывает ваше текущее местоположение.
Ваш код в порядке, потому что вы запускаете его на симуляторе, выберите Отладка -> Имитация местоположения -> Выберите другое местоположение, и вы увидите это местоположение на экране.
Вы запускаете это на своем симуляторе на компьютере?