我使用[CLLocationManager locationServicesEnabled]
函數來獲取位置服務是否啓用的狀態。我保留代碼viewDidLoad
方法。爲什麼CLLocationManager總是返回true?
if(![CLLocationManager locationServicesEnabled])
{
NSLog(@"No");
}
else
{
NSLog(@"Yes");
}
當我第一次運行這個應用程序時,它返回Yes
。爲什麼?它應該返回我No
。當我沒有選擇「允許」或「不允許」選項時就是這種情況。意思是我既不允許也不允許,但在viewDidLoad
我得到了Yes
。
現在我選擇「不允許」,並再次加載相同的viewController
。在這個時候,至少它應該返回我No
,但我仍然得到Yes
。爲什麼?
這麼多與CLLocationManager
混淆。
任何想法?
@Krishnabhadra的回答是正確的,這種方法只能告訴* device *上的位置服務的一般狀態。如果你想知道你的應用程序*是否被允許使用它們,你必須使用'authorizationStatus':https://developer.apple.com/library/ios/#documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager的.html#// apple_ref/OCC/CLM/CLLocationManager/authorizationStatus – psycho