程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-臨時禁止後CLLocationManager不返回位置

ios-臨時禁止後CLLocationManager不返回位置

編輯:編程綜合問答
臨時禁止後CLLocationManager不返回位置

臨時禁用了本地服務和應用許可,這樣可以測試一些處理場景的代碼。再次開啟後,就不能再獲取當前位置了,代碼如下:

CLLocationManager *locationManager = [ [CLLocationManager alloc] init];
[locationManager startUpdatingLocation];
CLLocation *currentLocation = locationManager.location;
[locationManager stopUpdatingLocation];

運行代碼後locationManager.location等於nil

設備是ios6的iPad。

最佳回答:


設置CLLocationManager代理:

CLLocationManager *locationManager = [ [CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingLocation];

然後試試CLLocationManager的代理:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
    self.currentLocation = newLocation;            
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
    // The location "unknown" error simply means the manager is currently unable to get the location.
    // We can ignore this error for the scenario of getting a single location fix, because we already have a
    // timeout that will stop the location manager to save power.
    if ([error code] != kCLErrorLocationUnknown) {
        [self stopUpdatingLocation:NSLocalizedString(@"Error", @"Error")];
    }
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved