在IOS8中定位功能新增了兩個方法:php
- (void)requestWhenInUseAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);- (void)requestAlwaysAuthorization __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_8_0);
這兩個新增的方法致使,以前寫的程序在iOS8運行會出現,定位功能沒法正常使用
html
這樣讓iOS8正常使用定位功能呢?ui
<1>你須要在info.plist表裏面添加兩條變量url
在Info.plist中加入兩個缺省沒有的字段
spa
NSLocationAlwaysUsageDescription代理
NSLocationWhenInUseUsageDescriptioncode
這兩個字段沒什麼特別的意思,就是自定義提示用戶受權使用地理定位功能時的提示語。orm
這樣在寫代碼:
htm
CLLocationManager *locationManager = [[CLLocationManager alloc]init]; locationManager.delegate = self; [locationManager requestAlwaysAuthorization]; locationManager.desiredAccuracy = kCLLocationAccuracyBest; locationManager.distanceFilter = kCLDistanceFilterNone; [locationManager startUpdatingLocation];
這是在調用代理ip
- (void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status { switch (status) { case kCLAuthorizationStatusNotDetermined: if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { [locationManager requestWhenInUseAuthorization]; } break; default: break; }}
這樣就Ok了,就會彈出原來的提示框