[CLLocationManager locationServicesEnabled]
기능을 사용하여 위치 서비스 사용 여부를 알 수 있습니다. 나는 viewDidLoad
방법으로 코드를 보관했다.CLLocationManager가 항상 true를 반환하는 이유는 무엇입니까?
if(![CLLocationManager locationServicesEnabled])
{
NSLog(@"No");
}
else
{
NSLog(@"Yes");
}
이 앱을 처음 실행하면 Yes
이 반환됩니다. 왜? 나에게 No
을 돌려 주어야합니다. "허용"또는 "허용하지 않음"옵션을 선택하지 않은 경우입니다. 내가 허락하지 않거나 허용하지 않는 수단은 viewDidLoad
입니다. Yes
이 있습니다.
이제 "허용하지 않음"을 선택하고 다시 viewController
을로드합니다. 이 시점에서 최소한 No
을 반환해야하지만 여전히 나는 Yes
을 얻었습니다. 왜?
상당 부분의 혼동으로 CLLocationManager
입니다.
아이디어가 있으십니까?
@ Krishnabhadra의 대답이 정확합니다.이 방법은 * 장치 *의 일반적인 위치 서비스에 대해서만 알려줍니다. * 귀하의 응용 프로그램 *이 응용 프로그램을 사용할 수 있는지 여부를 알고 싶다면'authorizationStatus'를 사용해야합니다 : https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager .html # // apple_ref/occ/clm/CLLocationManager/authorizationStatus – psycho