83

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

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

- (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.)" 
4

19 に答える 19

153

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

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

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

于 2013-06-18T08:37:47.053 に答える
107
  1. 実際に有効な WiFi および 3G 接続があることを確認します

    ...その場合:

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

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

これはその問題を処理する必要があります。アプリ関連ではなく、デバイス/ネットワーク関連です。アプリが位置情報サービスに依存していて、デバイスが Wi-Fi のみで、AppStore で人々が否定的な評価を付けている場合は特に面倒です... 申し訳ありませんが、少し感情的になっています。

于 2011-07-20T21:50:57.443 に答える
24

このエラーは単に無視して、更新または別のエラーが発生するまで待ちます。

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

Apple Documentation

于 2014-09-10T03:25:26.027 に答える
14

シミュレーターを再起動してもうまくいきませんでした。

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

于 2014-07-09T17:10:27.967 に答える
9

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

ここに画像の説明を入力

于 2015-03-23T17:46:14.633 に答える
7

私も同じ問題を抱えてる。考えられる説明/修正は、この SO 投稿でカバーされていると思います。

于 2011-05-30T02:24:23.753 に答える
5
  1. シミュレーターで、[設定] > [一般] > [リセット] > [位置情報とプライバシーをリセット] に移動します。

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

于 2015-04-10T11:39:23.380 に答える
1

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

于 2015-12-05T17:03:13.360 に答える
1
  1. コンテンツと設定をリセットしました。
  2. 派生データからデータを削除しました。
  3. Xcodeとシミュレーターを再起動して、私のために働きました。

@Memの回答と他の多くの感謝から

于 2015-07-02T10:10:54.223 に答える
0

デバイスで試してください。シミュレーターが位置情報を取得できないことがあります。

于 2017-01-10T14:02:00.727 に答える