2017-11-20 5 views
0

私が理解しているように、下の図のダイアログは、アプリケーションが最初に位置を求めるときにのみ表示されます。ユーザーが選択するオプション([許可]または[許可しない])に関係なく、このダイアログは再度ユーザーに表示されません。iOSで位置情報サービスのダイアログが表示されたかどうかを確認するにはどうすればよいですか?

  • ロケーションサービスのプロンプトダイアログが既にiOSに表示されているかどうかを知る方法はありますか?
  • 私もUIテストを書くので、テストが実行されるたびにこのダイアログを表示する必要があります。何とか(嘲笑などで)それをすることはできますか?

(画像はhereから取得されます。)

Location Services prompt dialog

答えて

1

チェックCLAuthorizationStatusのために、この列挙型では、ユーザーがまだ選択を行っていないときに返されるnotDeterminedと呼ばれる値を見つけることができます。

// User has not yet made a choice with regards to this application 
case notDetermined 

if(self.locationManager.authorizationStatus == .notDetermined) 
    { 
     //Do whatever you want here 
    } 
+0

感謝。 UIテスト(ユニットテストではない)で常に '.notDetermined'状態を返す' .authorizationStatus'を模倣する方法はありますか? – lagoman

+0

これについてはわかりませんが、一見すると、 '.autorizationStatus'はreadOnly varであり、' CLLocationManager' 'requestAlwaysAutorization'メソッドまたは' requestInUseAutorization'メソッド@lagomanによってのみ変更できますこのトピックは私に教えてください –

関連する問題