를 반환 내가 가진 :MKMapItem.forCurrentLocation()는 "알 수없는 위치"내 <code>ViewController's</code> 클래스 <code>viewDidLoad</code> 방법 내부
override func viewDidLoad() {
super.viewDidLoad()
requestAuthorization()
locationManager.delegate = self
print(MKMapItem.forCurrentLocation())
}
을 여기 requestAuthorization()
기능입니다 :
private func requestAuthorization(){
if CLLocationManager.authorizationStatus() == .notDetermined{
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
}
else if CLLocationManager.authorizationStatus() == .denied{
//TODO
}
}
문제는 forCurrentLocation()
기능을 결코 반환하는 실제 사용자 위치 대신 MKMapItem의 좌표는 다음과 같습니다 (위도 : 0, 경도 : 0). 다음은 인쇄 기능의 결과입니다.
MKMapItem : 0x60000014e020 isCurrentLocation = 1; name = "알 수없는 위치";
내가 뭘 잘못하고 있니?
편집 :
내가 MKMapItem.forCurrentLocation()
나는 사용자가 prepareForSegue
좌표를 얻을 계획이었다 사용하고자하는 이유. 그리고 나는 didUpdateLocations
대리자 메서드를 사용하는 것보다 쉬울 것이라고 생각했습니다. 코드 참조 :처럼,
if segue.identifier == "categories",
let destinationVC = segue.destination as? CategoriesGroupViewController{
if let cell = sender as? UICollectionViewCell{
let indexPath = categoriesCollectionView.indexPath(for: cell)
destinationVC.groupOfDestinations = destinationsByCategory[indexPath!.row]
// 0 is index for Near Me cell
if indexPath?.row == 0 {
destinationVC.groupOfDestinations = getNearMeDestinations()
}
}
private func getNearMeDestinations() -> GroupOfDestinations{
let userCoordinates = MKMapItem.forCurrentLocation().placemark.coordinate
let nearMeCircularRegion: CLCircularRegion = CLCircularRegion(center: userCoordinates, radius: 10000, identifier: "nearMe")
...
return nearMeDestinations
}
ViewController 안에 MKMapView가 있으면'print (mapView.userLocation.location? .coordinate)'를 사용하십시오. –