標籤:
1.首先匯入CoreLocation架構 設定代理
CLLocationManagerDelegate
2.
- (void)initLocationManager
{
BOOL isEnable = [CLLocationManager locationServicesEnabled];
CGFloat verson = [[UIDevice currentDevice].systemVersion doubleValue];//float
if(isEnable) {
if(!_loactionManager){
_loactionManager = [[CLLocationManager alloc] init];
[_loactionManager setDelegate:self];
_loactionManager.desiredAccuracy = kCLLocationAccuracyBest;
_loactionManager.distanceFilter = 20.0;//每隔10米定位一次
if(verson > 8.0f){
[_loactionManager requestAlwaysAuthorization];
}
[_loactionManager startUpdatingLocation];
}
}
else {
Alert(@"溫馨提示", @"當前裝置定位功能未開啟!,建議您到手機系統的[設定]->[隱私]->[定位服務]中開啟定位服務,並允許“XXXX社區”使用定位服務" );
return;
}
}
3.要在pist檔案中添加兩個key值
NSLocationAlwaysUsageDescription NSLocationWhenInUseUsageDescription 這兩個key值添加在這個目錄下 Application requires iPhone environment
4.設定代理方法
#pragma mark 代理方法
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
{
CLLocation *currentLocation = [locations lastObject];
MJLog(@"currentLocation == %@",currentLocation);
// 建立位置
CLGeocoder *revGeo = [[CLGeocoder alloc] init];
[revGeo reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *placemarks, NSError *error) {
// 地理位置反編
if (!error && [placemarks count] > 0) {
NSDictionary *dict = [[placemarks objectAtIndex:0] addressDictionary];
_currentPosition = [dict objectForKey:@"City"];
MJLog(@"City address: %@",_currentPosition); }
else {
Alert(@"溫馨提示", @"擷取位置失敗");
MJLog(@"ERROR: %@", error); }
}];
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
{
MJLog(@"error :%@",[error localizedDescription]);
}
iOS 8 定位