Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
Tại sao lại xảy ra lỗi này?
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
Tại sao lại xảy ra lỗi này?
Câu trả lời:
Lỗi này xảy ra nếu bạn đã chọn Scheme/Edit Scheme/Options/Allow Location Simulation
nhưng chưa đặt vị trí mặc định. Tôi chắc rằng cũng có những nguyên nhân khác.
CẬP NHẬT
CẢM ƠN Ben Marten Bạn có thể đặt nó vĩnh viễn bằng các bước sau trong XCode:
- Sản phẩm> Lược đồ> Chỉnh sửa Lược đồ
- Nhấp vào Chạy .app
- Tab tùy chọn
- Đã chọn Vị trí cốt lõi> chọn vị trí của bạn
- nhấn OK
Bên cạnh đó, ngay cả khi bạn không kết nối với Wi-Fi, bạn có thể đặt một vị trí trong trình mô phỏng thông qua các mục menu trên cùng Debug>Location
và đặt nó vĩnh viễn theo các bước ở trên
Tôi chỉ có vấn đề này. Tôi đã mất một lúc để tìm ra giải pháp, điều này chỉ liên quan một cách lỏng lẻo đến câu trả lời của người đăng trước.
Sân bay (WiFi) phải được bật để CoreLocation trong Trình mô phỏng iPhone / iPad hoạt động. Tôi đã kết nối qua Ethernet nên CL không làm bất cứ điều gì trong Trình mô phỏng. Bật Sân bay trong Cài đặt mạng của bạn và thử lại. Bạn có thể thay đổi thứ tự các giao diện mạng của mình bằng cách kéo Airport bên dưới Ethernet nếu bạn muốn tiếp tục ưa thích kết nối có dây qua không dây ...
Từ tài liệu API:
CLError
Mã lỗi do đối tượng quản lý vị trí trả về.
typedef enum {kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure} CLError;
Hằng số
kCLErrorLocationUnknown Trình quản lý vị trí không thể lấy giá trị vị trí ngay bây giờ. Khả dụng trong iPhone OS 2.0 trở lên. Được tuyên bố trong CLError.h.
kCLErrorDenied Quyền truy cập vào dịch vụ vị trí đã bị người dùng từ chối. Có sẵn trong hệ điều hành iPhone 2.0 trở lên. Được tuyên bố trong CLError.h.
kCLErrorNetwork Mạng không khả dụng hoặc xảy ra lỗi mạng. Có sẵn trong hệ điều hành iPhone 3.0b trở lên. Được tuyên bố trong CLError.h.
kCLErrorHeadingFailure Không thể xác định được tiêu đề. Có sẵn trong hệ điều hành iPhone 3.0 trở lên. Được tuyên bố trong CLError.h.
Vì vậy, điều này có nghĩa là không thể xác định được vị trí.
Tôi đoán nguyên nhân rất có thể là do trình quản lý vị trí đang sử dụng WiFi để xác định vị trí và cơ sở dữ liệu không bao gồm các mạng cục bộ. Điều đó dường như có thể được khắc phục bởi người dùng nếu họ truy cập vào đây .
Tuy nhiên, như tôi đã lưu ý, đôi khi tôi cũng thấy đây là một lỗi tạm thời khi chạy chương trình dựa trên vị trí ở một vị trí mà nội dung vị trí WiFi thường hoạt động.
Cuối cùng, tôi đoán có thể gặp lỗi này nếu có một số loại lỗi phần cứng.
1) kiểm tra xem bạn có thực sự có kết nối WiFi và 3G hợp lệ không
nếu bạn làm thì
2) đi tới cài đặt và đặt lại dịch vụ định vị của bạn 3) đặt lại cài đặt mạng của bạn
Lỗi này xảy ra khi Trình quản lý vị trí không thể nhận thông tin vị trí ngay lập tức. Tôi thấy rằng lỗi này đã xảy ra khi phương thức startUpdatingLocation được gọi. Đối với tôi, điều này đã xảy ra trên iPod nhưng không xảy ra trên iPhone. Điều đó có lý, vì iPhone có nhiều cách hơn (như mạng di động) để lấy thông tin vị trí và có thể ước tính nhanh vị trí trong khi iPod mất nhiều thời gian hơn khiến lỗi này xuất hiện trên iPod.
Vì, khi lỗi này được gọi phương thức locationManager: didFailWithError: Delegate, người ta có thể xử lý trường hợp cụ thể này trong một câu lệnh điều kiện bằng cách so khớp "[miền lỗi]" và "[mã lỗi]" từ đối tượng lỗi được truyền cho phương thức này.
Lý do chính xác mà tôi tìm thấy là có xung đột xảy ra trong mô phỏng vị trí trong cả "Cài đặt gỡ lỗi" của trình mô phỏng ios và trong cài đặt xcode "Chỉnh sửa lược đồ". Đảm bảo đặt bạn vị trí người dùng mặc định trong bất kỳ vị trí nào trong số này và đánh dấu cái kia thành Không giải quyết được vấn đề hy vọng điều này có thể giúp ích cho chắc chắn. InXcode:
Trong trình mô phỏng iphone / ipad:
Bạn có thể thêm danh sách vị trí của riêng mình vào Xcode để kiểm tra các ứng dụng của bạn.
Từ bên trong Xcode, chọn menu Gỡ lỗi / Mô phỏng Vị trí và bạn sẽ được cung cấp:
a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."
Chọn "Thêm tệp GPX vào dự án ..." và chọn tệp GPX bạn đã tạo.
Nhờ bài viết này ( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ ), tôi đã có gợi ý để xem dữ liệu trên tệp GPX tùy chỉnh của mình và đã phát hiện ra vấn đề.
Một số tệp GPX bạn có thể lấy từ các nguồn khác nhau có thể có các phần tử sau chỉ ra các tọa độ khác nhau trong đường dẫn được chỉ định. Điều này sẽ không hoạt động với Mô phỏng vị trí của Xcode.
<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>
Những gì bạn nên làm là tìm tất cả các lần xuất hiện của phần tử "trkpt" và thay thế nó bằng "wpt" trong trình soạn thảo văn bản / xml yêu thích của bạn. Kết quả cuối cùng sẽ như sau:
<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>
Hi vọng điêu nay co ich! Nó chắc chắn đã giúp tôi.
Lỗi này xảy ra khi bạn chạy chương trình của mình, nhưng bạn mô phỏng vị trí sau khi chạy chương trình.
Tôi nhận được một phương pháp: thoát trình mô phỏng của bạn và khởi động lại nó, sau đó đặt vị trí trình mô phỏng của bạn trước khi bạn chạy chương trình và nó hoạt động với tôi.
Hi vọng điêu nay co ich! Nó chắc chắn đã giúp tôi. cảm ơn...
tất cả những điều này không hiệu quả với tôi .. những gì hiệu quả với tôi là: - đặt vị trí từ trình mô phỏng để none
sau đó thay đổi custom
vị trí trở lại vị trí trong khi ứng dụng đang chạy.
Nếu bạn đang nhận được điều này trên thiết bị, rất có thể bạn đã không yêu cầu hoặc người dùng đã từ chối quyền thu thập vị trí.