Helpex - Trao đổi & giúp đỡ Đăng nhập
12

Để biết vị trí địa lý cuối cùng, tôi có:

CLLocationManager * locationManager = [[CLLocationManager alloc] init];
CLLocation * lastKnownLocation = [locationManager location];

LastKnownLocation có phản ánh vị trí cuối cùng mà ứng dụng của tôi được gọi lại hay nó phản ánh vị trí cuối cùng ở cấp hệ thống iOS toàn cầu (ứng dụng khác hoặc iOS có thể đã truy vấn)?

Tôi đang làm điều này thay vì chủ động truy vấn vị trí của người dùng để không lãng phí pin của người dùng.

Nếu người dùng không cấp quyền truy cập vị trí, rõ ràng lastKnownLocation sẽ là con số không. Câu hỏi của tôi dành riêng cho trường hợp người dùng đã cấp cho ứng dụng của tôi quyền truy cập vị trí.

12 hữu ích 0 bình luận 6.2k xem chia sẻ
5

Nói chung, bạn không nên chỉ dựa vào giá trị hiện có (nếu có) được trả về locationtrừ khi bạn kiểm tra độ chính xác và dấu thời gian của nó (so với yêu cầu của bạn). Tốt hơn là nên bắt đầu startUpdatingLocationcho đến khi bạn nhận được một vị trí phù hợp với yêu cầu về độ chính xác của mình và sau đó stopUpdatingLocationhoặc chuyển sang stopMonitoringSignificantLocationChanges(nếu có).

Vị trí được trả lại từ locationrất phụ thuộc vào lịch sử, vì vậy bạn không thể nói cách này hay cách khác rằng nó sẽ như thế nào. Bạn luôn cần xác minh tính chính xác cho mục đích của mình.

5 hữu ích 1 bình luận chia sẻ
1

Tôi biết đây là một câu hỏi cũ nhưng vì lợi ích của sự đầy đủ và có thể những người khác kết thúc ở đây:

Các CLLocationManagerlớp có locationtài sản mà trả về (theo chính thức tài liệu của Apple ):

Vị trí người dùng được truy xuất gần đây nhất.

Phương thức này sẽ trả về nilkhi không xác định được vị trí.

1 hữu ích 0 bình luận chia sẻ
loading
Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ ios geolocation , hoặc hỏi câu hỏi của bạn.

Có thể bạn quan tâm

loading