didFailWithError:Error Domain = kCLErrorDomain Code = 0「操作を完了できませんでした。(kCLErrorDomainエラー0。)」


82

現在地を取得したいのですが、エラーが発生します。

これは私のViewControllerのスニペットです。

- (void)viewDidLoad {
    self.locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
    [locationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager 
     didUpdateLocations:(NSArray<CLLocation *> *)locations {
    // I would get the latest location here
    // but this method never gets called
}
- (void)locationManager:(CLLocationManager *)manager 
       didFailWithError:(NSError *)error {
    NSLog(@"didFailWithError: %@", error);
}

デリゲートメソッドlocationManager:didUpdateLocations:が呼び出されることを期待していますが、代わりにlocationManager:didFailWithError:呼び出されるだけで、次のように出力されます。

didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 

代わりにグーグルAPIを使用することができます。ここに私の答え参照してくださいstackoverflow.com/a/40670608/2033377
ディーパック・タクール

回答:


106
  1. 実際に有効なWiFiと3G接続があることを確認してください

    ...もしそうなら:

  2. 設定に移動し、位置情報サービスをリセットします

  3. ネットワーク設定をリセットする

これで問題が解決するはずです。アプリ関連ではなく、デバイス/ネットワーク関連です。アプリが位置情報サービスに依存していて、デバイスがWiFiのみで、AppStoreで人々が否定的な評価を与えている場合は特に迷惑です...ごめんなさい、私はそこで少し感情的になっています。


2
私の知る限り、GPSはインターネットやwifi接続を必要としません.2つまたは3つのGPS衛星があるアクセス可能な場所にある場合は受信機であり、地理的位置座標を取得できます。インターネットやwifi接続がありませんか?
Durai Amuthan.H 2013

2
位置情報サービスとネットワーク設定のリセットを指摘するための1つの賛成
Durai Amuthan.H 2013

3
これらの手順を実行する必要はありません。このエラーを無視して、さらに更新されるのを待つだけです。以下の私の回答を参照するか、developer.apple.com /
library / ios / documentation / corelocation

3
私のデバイス(iPhone 5S、iOS 8.1.3)でMapKitとCoreLocationを使用しているときに、まったく同じ問題が発生しました。場所を取得できず、同じエラーが何度も発生しました(モバイルネットワークの信号が良好であるにもかかわらず)。WiFiをオンにして、すべてが修正されるまで!奇妙な...ありがとう!
Vinzzz 2015

2
@ DuraiAmuthan.HiPadには実際のGPSハードウェアがありません。彼らはあなたの場所を決定するためにwifiMACアドレスのデータベースを使用します。
whoKnows 2015年

146

シミュレーターを使用している場合:

  1. command + shift + ,Xcodeを押してスキームエディタを開きます
  2. 実行スキームを選択します
  3. [オプション]タブに移動します
  4. チェック✅ Allow Location Simulation
  5. ドロップダウンでデフォルトの場所を選択します

Noneデフォルトの場所として選択すると、問題が発生した可能性があります。


4
うわー!おかげで、私はこれを何週間も追い続けてきました。私のアプリはiPadまたはiPhoneをイギリスのロンドンの場所に強制し続けましたが、その理由がわかりませんでした。そのオプションをオフにすると、問題は解決しました。おそらく、場所をつかんでから離れて、場所をスキーム上の場所に変更するのが問題でした。
アンドリュースミス

7
私のために働いたが、私はまたしなければならなかったiOS Simulator>Reset Content and Settings...
bendytree

私のためにそれを釘付けにしました。
ScottyBlades 2017

23

このエラーを無視して、次の更新または別のエラーを待つだけです。

ロケーションマネージャーのドキュメントによると、このエラーは一時的なものです。すぐに場所を取得できなかったことを通知しますが、試行を続けます。「このような状況では、エラーを無視して、新しいイベントを待つことができます。」これは、-Thanks locationManager:didFailWithError:Apple!という名前のメソッドを使用するための本当に骨の折れる方法です。

Apple Documentation


19

シミュレーターを再起動してみてください(それが使用していると仮定します)。

他のすべてを試した後、これは私のために働いた。


me.Thanksのために働い
スシル・シャルマ

私のためにも働いた。ありがとう
cozmin-calin

14

シミュレーターの再起動は私にとってはうまくいきませんでした。

を介してすべてをクリアする必要がありました"iOS Simulator" >> "Reset Content and Settings...


9

シミュレータでこのエラーが発生していました。デバッグパネルの場所ボタンをクリックして場所を設定すると、問題が解決しました。(ボタンが青色であることを確認してください)

ここに画像の説明を入力してください



5

シミュレーターの「場所」を変更することは私のために働いた。

デバッグ>場所>(City Bicycle Rideの代わりに鉱山がチェックされていません)


5
  1. シミュレーターで、[設定]> [一般]> [リセット]> [場所とプライバシーのリセット]に移動します

  2. シミュレーターを終了し、アプリを再度実行します


3

シミュレーターを使用していると仮定するとDebug -> Location、場所を設定することができます。

何も選択していない場合、このエラーが発生します。


2

あなたがcustom location長いと正しい方法を持っていることを確認することを使用しているなら、私はそれを逆転させて、私が気付く3時間前に無駄にしました...


ここのアメも2時間無駄になり、緯度と経度を正しい位置に設定しました。
Arpit B Parekh 2015

2

私は以前に問題を見たことがありますが、それを解決する方法はありますが、それは一度しか機能しません。プロジェクトを再度実行したい場合は、毎回解決を繰り返す必要があります。

1. Xcode、Product-> Scheme-> Edit Schemeで、「AllowLocationSimulator」をキャンセルします。

2. iOSシミュレーターに移動し、コンテンツと設定をリセットします。

3. Xcodeに戻り、最初の手順を繰り返します。

4.iOSシミュレーターに移動してリセットします。その後、それは動作します。


1

このような問題は、場所を「Apple」に設定することで解決できます。少なくとも、テスト目的で機能します。


1
  1. 内容と設定をリセットしました。
  2. 派生データからデータを削除しました。
  3. XcodeとSimulatorを再起動し、私のために働いた。

@Memと他の多くの人の答えから感謝します


1

返された開発者の場合:)Debug->Location->Freeway Driveシミュレータメニューから「」を選択するだけです。それでも問題が解決しない場合は、シミュレータメニューから「シミュレータ->コンテンツと設定のリセット」を実行してみてください。これは、同じ問題で一度私を助けました。一部のタイムシミュレータの場所は「Custom location」に設定されているため、何も検出されません。


1

シミュレーターを使用している場合は、スキームで場所が許可されていることを確認し、デフォルトの場所を選択してください。

ここに画像の説明を入力してください


0

デバイスで試してください。時々シミュレーターはあなたの場所をとることに失敗します。


0

シミュレーターで家に帰る

ホーム->設定->プライバシー->場所->アプリを選択し、常に選択


0

権限を追加するときプライバシー-使用中の場所info.plistの使用法の説明それは私のために解決されました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.