Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
이 오류가 발생하는 이유는 무엇입니까?
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
이 오류가 발생하는 이유는 무엇입니까?
답변:
이 오류는 Scheme/Edit Scheme/Options/Allow Location Simulation
선택했지만 기본 위치가 설정되지 않은 경우 발생합니다 . 나는 다른 원인도 있다고 확신합니다.
최신 정보
Ben Marten 에게 감사드립니다 XCode에서 다음 단계를 사용하여 영구적으로 만들 수 있습니다.
- 제품> 구성> 구성 편집
- .app 실행을 클릭합니다.
- 옵션 탭
- 이미 확인한 핵심 위치> 위치 선택
- 확인을 누릅니다.
또한 Wi-Fi에 연결되어 있지 않아도 상위 메뉴 항목을 통해 시뮬레이터에서 위치를 설정하고 Debug>Location
위의 단계를 따라 영구적으로 만들 수 있습니다.
방금이 문제가 발생했습니다. 해결책을 찾는 데 시간이 걸렸습니다. 이전 포스터의 답변과 느슨하게 관련이 있습니다.
iPhone / iPad Simulator의 CoreLocation이 작동 하려면 Airport (WiFi) 가 켜져 있어야합니다 . 나는 이더넷을 통해 연결되었으므로 CL은 시뮬레이터에서 아무것도하지 않았습니다. 네트워크 설정에서 공항을 켜고 다시 시도하십시오. 무선보다 유선 연결을 계속 선호하려면 이더넷 아래에 공항을 끌어 네트워크 인터페이스의 순서를 변경할 수 있습니다.
API 문서에서 :
CLError
위치 관리자 개체에서 반환 한 오류 코드입니다.
typedef enum {kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure} CLError;
상수
kCLErrorLocationUnknown 위치 관리자가 지금 위치 값을 가져올 수 없습니다. iPhone OS 2.0 이상에서 사용할 수 있습니다. CLError.h에 선언되었습니다.
kCLErrorDenied 사용자가 위치 서비스에 대한 액세스를 거부했습니다. iPhone OS 2.0 이상에서 사용할 수 있습니다. CLError.h에 선언되었습니다.
kCLErrorNetwork 네트워크를 사용할 수 없거나 네트워크 오류가 발생했습니다. iPhone OS 3.0b 이상에서 사용 가능합니다. CLError.h에 선언되었습니다.
kCLErrorHeadingFailure 표제를 판별 할 수 없습니다. iPhone OS 3.0 이상에서 사용할 수 있습니다. CLError.h에 선언되었습니다.
따라서 이것은 위치를 결정할 수 없음을 의미합니다.
가장 가능성이 높은 원인은 위치 관리자가 WiFi를 사용하여 위치를 삼각 측량하고 데이터베이스가 로컬 네트워크를 다루지 않는다는 것입니다. 사용자가 여기에 가면 분명히 고칠 수 있습니다 .
그러나 내가 언급했듯이 WiFi 위치 항목이 정상적으로 작동하는 위치에서 위치 기반 프로그램을 실행할 때 가끔 일시적인 오류로 보이기도합니다.
마지막으로 하드웨어 오류가 발생하면이 오류가 표시 될 수 있다고 생각합니다.
1) 실제로 유효한 WiFi 및 3G 연결이 있는지 확인
그렇다면
2) 설정으로 이동하여 위치 서비스를 재설정합니다. 3) 네트워크 설정을 재설정합니다.
이 오류는 위치 관리자가 위치 정보를 즉시 가져올 수 없을 때 발생합니다. startUpdatingLocation 메서드가 호출 될 때이 오류가 발생하는 것을 발견했습니다. 나에게 이것은 iPod에서 발생했지만 iPhone에서는 발생하지 않았습니다. 아이폰은 위치 정보를 얻을 수있는 더 많은 방법 (예 : 셀룰러 네트워크)이 있고 위치를 빠르게 예측할 수있는 반면, 아이팟은 더 많은 시간이 소요되어 아이팟에서이 오류가 발생하기 때문입니다.
이 오류가 발생하면 locationManager : didFailWithError : delegate 메소드가 호출되므로이 메소드에 전달 된 오류 객체에서 "[error domain]"및 "[error code]"를 일치시켜 조건문에서이 특정 경우를 처리 할 수 있습니다.
이 기사 ( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ ) 덕분에 사용자 지정 GPX 파일의 데이터를 볼 수있는 힌트를 얻었고 문제를 발견했습니다.
다른 소스에서 가져올 수있는 일부 GPX 파일에는 지정된 경로의 다른 좌표를 나타내는 다음 요소가있을 수 있습니다. 이것은 Xcode의 위치 시뮬레이션에서는 작동하지 않습니다.
<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>
해야 할 일은 "trkpt"요소의 모든 항목을 찾아 선호하는 텍스트 / xml 편집기에서 "wpt"로 바꾸는 것입니다. 최종 결과는 다음과 같아야합니다.
<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>
도움이 되었기를 바랍니다! 확실히 도움이되었습니다.
기기에서이 정보를 얻는다면 요청하지 않았거나 사용자가 위치 수집 권한을 거부했을 가능성이 있습니다.