Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
なぜこのエラーが発生するのですか?
このエラーは、Scheme/Edit Scheme/Options/Allow Location Simulation
がオンになっているが、デフォルトの場所が設定されていない場合に発生します。しかし、他の原因もあると確信しています。
[〜#〜] update [〜#〜]
ありがとうございます ベンマーテンXCodeで以下の手順を使用して、永続化することができます。
- 製品>スキーム>スキームの編集
- [アプリを実行]をクリックします
- オプションタブ
- コアの場所を既に確認済み>場所を選択
- OKを押す
それに加えて、wifiに接続していない場合でも、トップメニューアイテムを使用してシミュレータで場所を設定できますDebug>Location
そしてそれを永続的にするには、上記の手順に従ってください
この問題が発生しました。解決策を見つけるのにしばらく時間がかかりました。これは、前のポスターの答えとは大まかにしか関係していません。
空港(WiFi)オンにする必要があります iPhone/iPadシミュレーターのCoreLocationが機能するため。イーサネット経由で接続したため、CLはシミュレーターで何もしませんでした。ネットワーク設定で空港をオンにして、もう一度お試しください。ワイヤレス経由で有線接続を継続したい場合は、Airportをイーサネットの下にドラッグして、ネットワークインターフェイスの順序を変更できます...
APIドキュメントから:
CLError
ロケーションマネージャオブジェクトによって返されるエラーコード。
typedef enum {kCLErrorLocationUnknown = 0、kCLErrorDenied、kCLErrorNetwork、kCLErrorHeadingFailure} CLError;
定数
kCLErrorLocationUnknownロケーションマネージャーは現在、ロケーション値を取得できませんでした。iPhoneOS 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を使用してロケーションを三角測量し、データベースがローカルネットワークをカバーしていないことです。 here にすれば、ユーザーが修正できるようです。
しかし、私が指摘したように、私はまた、WiFiロケーションスタッフが通常機能するロケーションでロケーションベースのプログラムを実行しているときに、一時的なエラーとしてこれを見たことがあります。
最後に、何らかのハードウェア障害がある場合、このエラーが表示される可能性があると思います。
1)実際に有効なWiFiおよび3G接続があることを確認します
もしそうなら
2)設定に移動して位置情報サービスをリセットします3)ネットワーク設定をリセットします
このエラーは、Location Managerが位置情報をすぐに取得できない場合にスローされます。 startUpdatingLocationメソッドが呼び出されたときにこのエラーが発生していることがわかりました。私にとっては、これはiPodでは起きていたが、iPhoneでは起きていなかった。 iPhoneには位置情報を取得する方法(セルラーネットワークなど)があり、位置をすばやく推定できるのに対し、iPodには時間がかかるため、このエラーがiPodで発生するため、これは理にかなっています。
このエラーがスローされると、locationManager:didFailWithError:デリゲートメソッドが呼び出されるため、このメソッドに渡されたエラーオブジェクトの「[error domain]」と「[error code]」を照合することにより、条件ステートメントでこの特定のケースを処理できます。
私が見つけた正確な理由は、iosシミュレーターの「デバッグ設定」とxcode設定の「スキームの編集」の両方でロケーションシミュレーションに競合が発生していることです。もう一方Noneは、これが確実に役立つことを願って問題を解決しました。 InXcode:
iphone/ipadシミュレーターでは:
独自の場所のリストをXcodeに追加して、アプリケーションをテストできます。
Xcode内から[Debug/Simulate Location]メニューを選択すると、以下が表示されます。
a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."
[プロジェクトにGPXファイルを追加...]を選択し、作成したGPXファイルを選択します。
このエラーはプログラムの実行中に発生しますが、プログラムの実行後に場所をシミュレートします。
私はメソッドを取得します:シミュレータを終了して再起動し、プログラムを実行する前にシミュレータの場所を設定してください。
お役に立てれば!それは確かに私を助けました。ありがとう...
この記事のおかげで( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ )カスタムGPXのデータを見るヒントを得たファイルとそこに問題が見つかりました。
さまざまなソースから取得する可能性のあるGPXファイルには、指定されたパスのさまざまな座標を示す次の要素が含まれている場合があります。これはXcodeのロケーションシミュレーションでは機能しません。
<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>
あなたがすべきことは、「trkpt」要素の出現をすべて見つけて、お気に入りのtext/xmlエディターで「wpt」に置き換えることです。最終結果は次のようになります。
<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>
お役に立てれば!それは確かに私を助けました。
これはすべてうまくいきませんでした..うまくいったのは、シミュレータの場所をnone
に設定してから、アプリの実行中にcustom
の場所に戻すことです。
Xcodeプロジェクト>製品>スキーム>編集スキーム>チェックロケーションシミュレーション>ロケーションを設定>に移動し、アプリを再度実行します
私の場合、すべての提案が役に立たなかった。シミュレーターデバイスからアプリをアンインストールし、再インストールして、(設定アプリで)場所にアクセスできるようにしたのが助けになりました。