Tôi đang cố triển khai chế độ xem bản đồ cơ bản và thêm vị trí hiện tại của người dùng vào bản đồ dưới dạng chú thích. Tôi đã thêm khóa requestwheninuse vào info.plist và coreLocation đã nhập của mình.xử lý quyền vị trí ngay lập tức trong swift
Trong phương pháp tải đã điều khiển quan điểm của tôi, tôi có như sau:
locManager.requestWhenInUseAuthorization()
var currentLocation : CLLocation
if(CLLocationManager.authorizationStatus() == CLAuthorizationStatus.AuthorizedWhenInUse){
currentLocation = locManager.location
println("currentLocation is \(currentLocation)")
}
else{
println("not getting location")
// a default pin
}
Tôi nhận lại nhắc. quyền truy xuất vị trí. Vì điều này đang xảy ra, tôi nhận được bản in của tôi nói rằng không nhận được vị trí, rõ ràng là vì điều này chạy trước khi người dùng có cơ hội nhấn OK. Nếu tôi yêu thích ứng dụng và quay trở lại, tôi có thể truy xuất vị trí và thêm nó vào bản đồ. Tuy nhiên, tôi muốn khi người dùng nhấn OK lần đầu tiên để có thể sau đó lấy vị trí hiện tại và thêm nó vào bản đồ ở đó và sau đó. Làm thế nào tôi có thể đạt được điều này? Tôi có phương pháp sau đây để thêm một pin:
func addPin(location2D: CLLocationCoordinate2D){
self.mapView.delegate = self
var newPoint = MKPointAnnotation()
newPoint.coordinate = location2D
self.mapView.addAnnotation(newPoint)
}
Cảm ơn bạn đã phản hồi. Các dòng locManger.delegate = tự cho tôi một lỗi 'dự kiến khai báo' – user2363025
@ user2363025 bạn có thể xây dựng? Nhấp vào lỗi và nó sẽ cho bạn biết thêm –
Đó là tất cả các lỗi nói. Không có thông tin bổ sung nào xuất hiện khi di chuột qua. Tôi thấy ở đây http://stackoverflow.com/questions/24121761/how-to-use-corelocation-with-swift mà có lẽ tôi phải định nghĩa locManager trong appdelegate? Tôi cũng nhận được lỗi trong mọi trường hợp của câu lệnh switch nói rằng mỗi phương thức không thể được gọi là không có đối số cho dù tôi đã định nghĩa locManager trong appdelegate hoặc bộ điều khiển xem của tôi – user2363025