2010-03-15 3 views
1

위치를 확인하는 앱이 있습니다. 그것은 사용자에게 위치를 사용하도록 요청하고, 사용자가 메뉴에서 no라고 말하면 mapview를로드 할 때 문제가 발생합니다.LocationManager의 "허용 안 함"은 로깅 오류를 계속합니다.

일단 mapView를 선택하면 사용자 위치를 다시 묻습니다. 사용자가 다시 안된다고 말하면 내 콘솔은 내 위치 관리자 클래스의 "didFailWithError"에서 NSLog를 비롯하여 오류/경고를 계속 표시합니다.

사용자가 이미 아니오라고 말한 경우 didManailErrors를 중지하는 방법이 있습니까? 로그 파일 내을 locationManager를 작성되면 어떻게 애플이 내 응용 프로그램을 받아 들일 것이라고 생각하지 않습니다

다음

ERROR,Time,290362745.002,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1 
WARNING,Time,290362745.005,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1035.0 has been disconnected from daemon 
2010-03-15 12:19:05.002 SAQ[1035:207] LocationManager Error Denied by user 

답변

4

문서 -didFailWithError: 방식에 콘솔 반복됩니다 무엇의 예입니다 말한다 :

사용자가 응용 프로그램의 위치 서비스 사용을 거부하면이 메서드는 kCLErrorDenied 오류를보고합니다. 이러한 오류가 발생하면 위치 서비스를 중지해야합니다.

그래서 당신이 메시지 위치 관리자해야이 오류를받은 후 위치를 업데이트 중지 :

[manager stopUpdatingLocation]; 

당신은 내가 트릭을 할해야 NO과의 showsUserLocation 속성을 설정 생각 MKMapView를 사용하는 경우.

+0

참으로 .... 내지도보기가 두 경우에 대해 showUserLocation을로드 중입니다 (위치가 거부 됨). 고마워요, 대답이 너무 간단 할 때 실망합니다 ... Thanks again –

+0

stopUpdatingLocation이 immediatley라고해도, 나는 항상 두 번의 didFailWithError 호출을 받는다. – AlexWien

0

오류 코드를 확인하고 오류 코드가 kCLErrorDenied 인 경우 위치 업데이트를 중단하는 것은 사용자의 책임입니다.