2016-09-14 24 views
5

CLLocationManager.requestLocation() mất khoảng 10 giây để kích hoạt sự kiện didUpdateLocations.CLLocationManager.requestLocation() mất khoảng 10 giây

Dưới đây là các thuộc tính thiết lập cho CLLocationManager

let locationManager = CLLocationManager() 
locationManager.delegate = self 
locationManager.desiredAccuracy = kCLLocationAccuracyBest 
locationManager.distanceFilter = 10 
locationManager.requestWhenInUseAuthorization() 
locationManager.requestLocation() 

Theo documentation này có thể mất vài giây.

Phương thức này sẽ trả về ngay lập tức. Gọi nó làm cho trình quản lý vị trí sửa lỗi vị trí (có thể mất vài giây) và gọi phương thứcManager (_: didUpdateLocations :) của đại biểu với kết quả.

Nhưng điều này có thể mất 10 giây dài không? Hay tôi đang thiếu một cái gì đó?

Cảm ơn trước

+0

(có thể mất vài giây). Đảm bảo bạn cập nhật giao diện người dùng từ hàng đợi chính –

+0

Cần có thời gian để có được vị trí chính xác nếu GPS chưa được chạy. Nếu không thể tìm thấy vị trí, có thể mất hơn 10 giây trước khi ngừng hoạt động. – Paulw11

+4

Cảm ơn tất cả các ý kiến. @SausageMachine Tôi không phàn nàn, tôi tự hỏi các ứng dụng như Google Maps có được vị trí trong khoảng 3 giây bằng cách sử dụng cùng cấp độ truy cập vị trí 'Trong khi sử dụng'. @Tất cả các cử tri xuống thiên tài, tôi hỏi điều này bởi vì tôi chưa thấy một ứng dụng dành nhiều thời gian này để có được vị trí. Vui lòng làm sáng tỏ cho tôi. –

Trả lời

0

Nếu bạn chuyển ra

locationManager.requestLocation() 

cho

locationManager.startUpdatingLocation() 

sau đó didUpdateLocations sẽ bắt đầu bắn ngay lập tức. Điều này sẽ giải quyết vấn đề của bạn.

Các vấn đề liên quan