2017-11-20 2 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에 의해서만 변경 될 수 있다고 생각합니다. 이 주제는 저에게 알려주세요. –

관련 문제