Lỗi Trình quản lý Vị trí: (Lỗi KCLErrorDomain 0)


95
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 hỏi hay - đôi khi tôi đã gặp lỗi tương tự. Tôi tin rằng điều đó xảy ra khi người quản lý vị trí không lấy được vị trí hiện tại - ví dụ: vì không có bản sửa lỗi đủ tốt. Nhưng, đôi khi tôi đã thấy nó sau khi nó đã được sửa chữa tốt, sau đó lỗi này xuất hiện.
Frankodwyer 14/09/09

1
Đối với tôi, tôi đã sử dụng dấu phẩy thay vì dấu chấm cho dấu phân tách thập phân vị trí tùy chỉnh.
electronix384128

Tôi cũng gặp sự cố tương tự, hãy đặt độ chính xác thành kCLLocationAccuracyBest hoặc một giá trị lớn nào đó, bỏ qua lỗi và đợi thêm bản cập nhật.
zaheer

Câu trả lời:


163

Lỗi này xảy ra nếu bạn đã chọn Scheme/Edit Scheme/Options/Allow Location Simulationnhư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.


1
Cảm ơn, nhưng câu hỏi của tôi là nếu chúng tôi đặt vị trí mặc định, nó có ảnh hưởng đến việc cập nhật vị trí thiết bị không?
sKhan

@ShafKhan Không trả lời câu hỏi trong phần bình luận. Hỏi nó như một câu hỏi mới.
Undistraction

9
Nếu bạn đang tự hỏi đâu là Đề án theo liên kết này developer.apple.com/library/mac/recipes/...
Bishal Ghimire

Tôi vẫn phải "Đặt lại Nội dung và Cài đặt" để người được ủy quyền gọi didUpdate thay vì didFail sau khi đặt vị trí mặc định trong trình chỉnh sửa lược đồ. Sau đó, nó hoạt động tốt.
owenfi

Điều này hoàn toàn giải quyết được vấn đề của tôi! Cảm ơn rât nhiều.
Ifelere Bolaji 14/09/16

42

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:

  1. Sản phẩm> Lược đồ> Chỉnh sửa Lược đồ
  2. Nhấp vào Chạy .app
  3. Tab tùy chọn
  4. Đã chọn Vị trí cốt lõi> chọn vị trí của bạn
  5. 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>Locationvà đặt nó vĩnh viễn theo các bước ở trên

lỗi vị trí trong trình mô phỏng iOS


1
Để làm cho nó vĩnh viễn, trong Xcode: Sản phẩm / Đề án / Sửa Scheme ... / Run / Options / Core Location - Kiểm tra "Allow Location mô phỏng" & Set "Default Location" thành "Không"
electronix384128

1
Yessss, Nó hoạt động. Cảm ơn bạn rất nhiều 😃👍😄😃👌👏💃🙏💃💃. Chỉnh sửa câu hỏi của tôi cho thêm kiến thức :)
Vaibhav Saran

33

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 ...


2
Tôi gặp lỗi này và máy tính của tôi được kết nối với Wi-Fi qua máng internet. Ngoài ra, nếu tôi không nhầm, Trình mô phỏng không phân giải vị trí, luôn sử dụng vị trí của Apple Office. Khi sử dụng khung MapKit, chấm màu xanh lam sẽ hiển thị, vì vậy vị trí đã được đặt. Nó không có nhiều ý nghĩa.
Alex Angelico

1
Tôi vừa mới bật nó lên, nó không phải là lần đầu tiên trong danh sách mạng của tôi và mọi thứ bắt đầu hoạt động (Lion, XC 4.2)
David H

1
Tôi đã gặp vấn đề tương tự, nhưng không phải trên trình mô phỏng, trên thiết bị! (iPhone 5S, iOS 8.1.3). Tôi đang gỡ lỗi một ứng dụng bằng MapKit & CoreLocation và cả hai khung đều trả về cùng một lỗi. Cho đến khi tôi bật Wifi! Cảm ơn :)
Vinzzz

13

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.


4
Ông được hỏi về: KCLErrorDomain
electronix384128

Không có tham chiếu đến kCLErrorDomain trong phản hồi này, đó là những gì OP đang tìm kiếm.
Norman H

5

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


Tôi vẫn không hiểu tại sao tôi không thể nhận được vị trí mà không có wifi hoặc 3g trên iPad khi kiểm tra, tại sao GPS không được sử dụng? Vì vậy, người dùng trên thiết bị không thể nhận được vị trí mà không có internet? Tôi cũng đang làm việc trên chế độ offline ứng dụng ...
Renetik

Theo như tôi biết thì GPS không cần kết nối internet hay wifi. Nó chỉ là một bộ thu nếu nó ở vị trí có thể truy cập được với 2 hoặc 3 vệ tinh GPS, chúng tôi có thể nhận được tọa độ vị trí địa lý. Chúng tôi chỉ cần lo lắng về kết nối internet nếu Thông tin địa lý cần thiết cho bất kỳ hoạt động trực tuyến nào như bản đồ google, phụ thuộc vào internet để hiển thị các vị trí bản đồ không được lưu trong bộ nhớ cache cục bộ. Các ứng dụng Điều hướng chuyên dụng như CoPilot giữ cho bản đồ luôn hoạt động.
Durai Amuthan.H

3

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.


3

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:nhập mô tả hình ảnh ở đây

Trong trình mô phỏng iphone / ipad:nhập mô tả hình ảnh ở đây


3

Nếu bạn nhận được điều này trong Trình giả lập thì hãy làm theo

Debug > Location >  Apple

hướng dẫn giả lập


1

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.


0

Đi tới dự án Xcode> sản phẩm> lược đồ> chỉnh sửa lược đồ> mô phỏng vị trí chek> đặt vị trí của bạn> và chạy lại ứng dụng Hy vọng nó sẽ hoạt động!


0

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.


0

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...


0

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 để nonesau đó thay đổi customvị trí trở lại vị trí trong khi ứng dụng đang chạy.


0

Tất cả các đề xuất không giúp được gì trong trường hợp của tôi. Điều hữu ích là gỡ cài đặt ứng dụng khỏi thiết bị giả lập, cài đặt lại và cho phép nó truy cập vị trí (trong ứng dụng cài đặt).


-1

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í.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.