11

ユーザーがログインするたびに、および他のいくつかの場所で現在の場所を呼び出しています。そうするたびに、ユーザーの許可を求めるアラート ビューが 1 秒ほど表示され、その後消えます。そして明らかに、私は場所を取得しません。これは、場所を求めるたびに発生します。ユーザーが [キャンセル] または [OK] をクリックすることはできません。助けてください

4

4 に答える 4

19

locationManager を保持していなかった可能性があります。その結果、呼び出し [CLLocationManager startUpdatingLocation]たときにアラートが表示されましたが、locationManager が解放されるとすぐに消えます。locationManger インスタンス用に作成したプロパティに、strong の代わりに assign と入力したときに、一度発生しました。

于 2012-11-16T14:54:41.310 に答える
0

startUpdatingLocation の後にデリゲート セッター メソッドを移動してみてください。わたしにはできる。例:

CLLocationManager *m = [[CLLocationManager alloc] init];
[m startUpdatingLocation];
m.delegate = self;

おっと、私の下手な英語。

于 2015-05-11T07:51:41.473 に答える
0

彼の投稿にコメントできないので、ここで回答します。

Gianluca Tranchedone は正しいです。私の場合、CLLocationManager を保持していました。BUT: AlertView が表示された直後に、最初のコールバックを起動して、ステータスが未定であることをデリゲートに伝えます。コールバックが受信されたときにインスタンスを解放するのを間違えました。

メソッドは次のようになり、機能します。

-(void)locationManager:(CLLocationManager*)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status {
switch (status) {
    case kCLAuthorizationStatusNotDetermined:
        break;
    default:
        _locationManagerForAuthorizationRequest.delegate = nil;
        self.locationManagerForAuthorizationRequest = nil;
}

}

于 2015-06-02T10:09:26.490 に答える