2009-09-11 30 views
81
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0) 

Tại sao lỗi này xảy ra?Lỗi Trình quản lý Vị trí: (KCLErrorDomain error 0)

+0

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 nhận được vị trí hiện tại - ví dụ: bởi vì bản sửa lỗi đủ tốt không khả dụng. Nhưng, tôi đã nhìn thấy nó vào những thời điểm sau khi nó * đã * có một sửa chữa tốt, sau đó sau này lỗi này bật lên. – frankodwyer

+1

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

+0

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

Trả lời

13

Từ các tài liệu API:

CLError

Error codes returned by the location manager object.

typedef enum { kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure } CLError;

Constants

kCLErrorLocationUnknown The location manager was unable to obtain a location value right now.Available in iPhone OS 2.0 and later. Declared in CLError.h.

kCLErrorDenied Access to the location service was denied by the user. Available in iPhone OS 2.0 and later. Declared in CLError.h.

kCLErrorNetwork The network was unavailable or a network error occurred. Available in iPhone OS 3.0b and later. Declared in CLError.h.

kCLErrorHeadingFailure The heading could not be determined. Available in iPhone OS 3.0 and later. Declared in CLError.h.

Vì vậy, điều này có nghĩa vị trí không thể xác định được.

Tôi đoán nguyên nhân có khả năng nhất là người quản lý vị trí đang sử dụng WiFi để định vị vị trí và cơ sở dữ liệu không bao gồm mạng cục bộ. Điều đó rõ ràng có thể được khắc phục bởi người dùng nếu họ truy cập here.

Tuy nhiên như tôi đã lưu ý, đôi khi tôi cũng thấy điều này là lỗi tạm thời khi chạy chương trình dựa trên vị trí ở vị trí nơi công cụ vị trí WiFi hoạt động bình thường.

Cuối cùng tôi đoán có thể thấy lỗi này nếu có một số loại lỗi phần cứng.

+3

Anh ta hỏi về: KCLErrorDomain –

+0

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

32

Tôi vừa gặp sự cố này. Đã cho tôi một thời gian để tìm ra giải pháp, mà 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 ở trên để CoreLocation trong iPhone/iPad Simulator hoạt động. Tôi đã được kết nối thông qua Ethernet nên CL đã không làm bất cứ điều gì trong Simulator. 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ự giao diện mạng bằng cách kéo Sân bay bên dưới Ethernet nếu bạn muốn tiếp tục ưu tiên kết nối có dây qua ...

+1

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 máng internet. Ngoài ra, nếu tôi không nhầm, Trình mô phỏng không giải quyết được vị trí, luôn sử dụng vị trí Apple Office. Khi sử dụng khung công tác MapKit, chấm màu xanh dương hiển thị, vì vậy vị trí được đặt. Nó không có ý nghĩa nhiều. –

+1

Tôi chỉ bật tính năng này, không phải đầ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) –

+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 đã gỡ lỗi một ứng dụng với MapKit & CoreLocation và cả hai khung công tác đều trả về cùng một lỗi. Cho đến khi tôi bật Wifi! Cảm ơn :) – Vinzzz

3

Lỗi này được ném 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ó ý nghĩa, 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ề vị trí trong khi iPod mất nhiều thời gian hơn khiến lỗi này được nâng lên trên iPod.

Vì, khi lỗi này được ném locationManager: didFailWithError: phương thức ủy nhiệm được gọi, người ta có thể xử lý trường hợp cụ thể này trong câu lệnh điều kiện bằng cách khớp "[tên miền lỗi]" và "[mã lỗi]" từ đối tượng lỗi được truyền cho phương pháp này.

5

1) kiểm tra xem bạn thực sự có một WiFi hợp lệ và kết nối 3G

nếu bạn làm sau đó

2) đi đến các thiết lập và thiết lập lại dịch vụ định vị của bạn 3) đặt lại cài đặt mạng của bạn

+0

Cảm ơn :) Tôi nhận nó hoạt động :) –

+0

Tôi vẫn không hiểu tại sao tôi không thể nhận vị trí mà không có wifi hoặc 3g trên iPad khi thử nghiệm, 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ể có được vị trí mà không có internet? Tôi cũng đang làm việc trên ứng dụng chế độ ngoại tuyến ... – Renetik

+0

Theo tôi biết GPS không cần kết nối internet hoặc wifi.Đó chỉ là bộ tiếp nhận nếu ở vị trí có thể truy cập với 2 hoặc 3 vệ tinh GPS, chúng tôi có thể lấy địa lý Chúng tôi cần phải lo lắng về kết nối internet chỉ khi GeoInformation là cần thiết cho bất kỳ hoạt động trực tuyến như bản đồ google mà phụ thuộc vào internet để hiển thị các địa điểm bản đồ mà không phải là địa phương lưu trữ. Các ứng dụng điều hướng như CoPilot giữ bản đồ trên tàu. –

140

Lỗi này xảy ra nếu bạn đã kiểm tra Scheme/Edit Scheme/Options/Allow Location Simulation nhưng chưa đặt vị trí mặc định. Tôi chắc chắn cũng có những nguyên nhân khác.

+3

Đây là vấn đề của tôi, cảm ơn bạn rất nhiều! – flip79

+0

Bạn được chào đón. – Undistraction

+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 cập nhật vị trí thiết bị không? – silentBeep

40

CẬP NHẬT

THANKS ĐỂ Ben Marten Bạn có thể làm cho nó vĩnh viễn sử dụng các bước trong XCode:

  1. Product > Scheme > Edit Scheme
  2. Click Run .app
  3. Option tab
  4. Already checked Core Location > select your location
  5. Press OK

Bên cạnh đó, ngay cả khi bạn không kết nối với wifi, bạn có thể đặt vị trí trong trình mô phỏng thông qua các mục menu hàng đầu Debug>Location và để làm cho vị trí đó vĩnh viễn làm theo các bước trên

location error in ios simulator

+1

Để làm cho nó vĩnh viễn, trong Xcode: Product/Scheme/Edit Scheme .../Run/Options/Core Location - Kiểm tra "Cho phép mô phỏng vị trí" & Đặt "Vị trí mặc định" thành "Không" –

+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 để biết thêm kiến ​​thức :) –

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 Debug/Simulate 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 "Add File để GPX dự án ..." và chọn file GPX bạn đã tạo.

2

Lý do chính xác những gì tôi đã tìm thấy là có xung đột xảy ra trong mô phỏng vị trí trong cả trình mô phỏng ios "Gỡ lỗi cài đặt" 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ỳ của điều này và đánh dấu khác để Không ai giải quyết vấn đề hy vọng điều này có thể giúp đỡ chắc chắn. InXcode:enter image description here

Trong iphone/ipad giả:enter image description here

0

Đến Xcode project> sản phẩm> chương trình> chỉnh sửa chương trình> vị trí chek mô phỏng> thiết lập vị trí của bạn> và chạy ứng dụng đó nữa Hy vọng nó sẽ công trinh !

0

Nhờ bài viết này (https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/) Tôi có một gợi ý để xem dữ liệu trên tệp GPX tùy chỉnh của tôi và đã tìm thấy sự cố.

Một số tệp GPX bạn có thể nhận được từ các nguồn khác nhau có thể có các yếu tố sau đây cho biết 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> 

Điều bạn cầ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ế bằng "wpt" trong trình chỉnh sửa văn bản/xml yêu thích của bạn. Kết quả cuối cùng phải như sau:

<gpx> 
<wpt lat="" lon=""> 
<ele></ele> 
</wpt> 
... 
</gpx> 

Hy vọng điều này sẽ hữu ích! Nó chắc chắn đã giúp tôi.

1

Lỗi này xảy ra khi bạn chạy chương trình, nhưng bạn mô phỏng vị trí sau khi bạn chạy chương trình.

Tôi nhận được một phương pháp: thoát trình giả lập và khởi động lại trình mô phỏng, 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 cho tôi.

Hy vọng điều này sẽ hữu ích! Nó chắc chắn đã giúp tôi. cảm ơn ...

-1

Nếu bạn đang nhận được điều này trên thiết bị, rất có thể là bạn đã không yêu cầu hoặc người dùng từ chối sự cho phép để thu thập vị trí.

0

tất cả những điều này không hiệu quả đối với tôi .. những gì làm việc cho tôi là: - đặt vị trí từ trình mô phỏng thành none rồi đổi lại thành custom trong khi ứng dụng đang chạy.

1

Nếu bạn nhận được điều này trong Emulator thì đừng sau

Debug > Location > ✓ Apple 

emulator instruction

0

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

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