IOS8 CoreLocation 的使用(一)

//
//  ViewController.m
//  CoreLocation
//
//  Created by apple on 15/5/22.
//  Copyright (c) 2015年 apple. All rights reserved.
//
#import "ViewController.h"
#import "CoreLocation/CoreLocation.h"
@interface ViewController () <CLLocationManagerDelegate>
@property (nonatomic,strong)  CLLocationManager *mgr ;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    // 代理
    self.mgr.delegate = self;
    /**
     *  在 info.plist里加入:
     NSLocationWhenInUseDescription,允许在前台获取GPS的描述
     NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述
     */
    [self.mgr requestAlwaysAuthorization];//手动申请获取位置的权限
    
}
-(void)locationManager:(CLLocationManager *)manager didChangeAuthorizationStatus:(CLAuthorizationStatus)status
{
    /**
     *  kCLAuthorizationStatusNotDetermined = 0,//等待授权
     
     // This application is not authorized to use location services.  Due
     // to active restrictions on location services, the user cannot change
     // this status, and may not have personally denied authorization
     kCLAuthorizationStatusRestricted,
     //无法使用定位服务,此状态用户无法修改
     // User has explicitly denied authorization for this application, or
     // location services are disabled in Settings.
     kCLAuthorizationStatusDenied, //拒绝权限
     
     // User has granted authorization to use their location at any time,
     // including monitoring for regions, visits, or significant location changes.
     kCLAuthorizationStatusAuthorizedAlways NS_ENUM_AVAILABLE(NA, 8_0),
     //前台后台都可以访问位置的权限
     
     // User has granted authorization to use their location only when your app
     // is visible to them (it will be made visible to them if you continue to
     // receive location updates while in the background).  Authorization to use
     // launch APIs has not been granted.
     kCLAuthorizationStatusAuthorizedWhenInUse NS_ENUM_AVAILABLE(NA, 8_0),
     //只有在前台才能访问位置的权限
     
     // This value is deprecated, but was equivalent to the new -Always value.
     kCLAuthorizationStatusAuthorized NS_ENUM_DEPRECATED(10_6, NA, 2_0, 8_0, "Use kCLAuthorizationStatusAuthorizedAlways") = kCLAuthorizationStatusAuthorizedAlways
     */
    if (status  == kCLAuthorizationStatusNotDetermined)
    {
        NSLog(@"等待授权!");
        
    }
    else if (status == kCLAuthorizationStatusAuthorizedAlways || status == kCLAuthorizationStatusAuthorizedWhenInUse)
    {
        NSLog(@"授权成功!");
        [self.mgr startUpdatingLocation];
    }
    else
    {
        NSLog(@"授权失败");
    }
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{
    //打印位置信息
    NSLog(@"%@",locations);
    
}
//懒加载
-(CLLocationManager *)mgr
{
    if (!_mgr)
    {
        _mgr = [[CLLocationManager alloc] init];
        
    }
    return  _mgr;
}
@end

locations的array信息的打印

在info.plist中添加如下配置

模拟器中便可以跳出提示框,点击allow,便会频繁打印定位信息,打印方法如上

时间: 2024-10-26 19:52:33

IOS8 CoreLocation 的使用(一)的相关文章

ios8 - CoreLocation定位服务的变化

在iOS8开发中,发现一个CoreLocation的使用问题,执行操作之后,不会调用到定位之后的delegate方法中. 根据文档,需要在使用CoreLocation前调用方法: [locationmanager requestAlwaysAuthorization]; [locationmanager requestWhenInUseAuthorization]; 并在Info.plist中加入两个字段(需手动输入添加,无选择项) NSLocationAlwaysUsageDescriptio

iOS8中使用CoreLocation定位[转]

本文转自:http://blog.devzeng.com/blog/ios8-corelocation-framework.html iOS8以前使用CoreLocation定位 1.首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#import <CoreLocation/CoreLocation.h> @property (nonatomic, strong) CLLocationManager *locationM

iOS8中使用CoreLocation定位

在iOS8中,苹果已经强制开发者在请求定位服务时获得用户的授权,此外iOS状态栏中还有指示图标,提示用户当前应用是否正在使用定位服务.另外在iOS8中,苹果进一步改善了定位服务,让开发者请求定位服务时需要向用户提供更多的透明.此外,iOS8中还支持让应用开发者调用全新的"访问监控"功能,当用户允许后应用才能获得更多的定位数据. iOS8以前使用CoreLocation定位 1.首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.frame

iOS8以上使用CoreLocation定位

1.在使用CoreLocation前需要调用如下函数 iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法: (1)始终允许访问位置信息 - (void)requestAlwaysAuthorization; (2)使用应用程序期间允许访问位置数据 - (void)requestWhenInUseAuthorization; 示例如下: self.locationManager = [[CLLocationManager alloc]ini

(七十五)CoreLocation(一)在iOS7和iOS8设备上获取授权

苹果在iOS8上更新了CoreLocation的授权获取方式,在原来的基础上,不仅需要调用授权函数,还需要对info.plist进行相应的配置. 在iOS上获取经纬度使用的是CoreLocationManager,它来自CoreLocation.framework框架,使用时应当包含框架的总头文件: #import <CoreLocation/CoreLocation.h> 一般是先创建管理者,然后成为其代理,对于iOS7,直接调用startUpdatingLocation即可开始监听,而对于

iOS8以前与iOS8使用CoreLocation定位

iOS8以前使用CoreLocation定位1.首先定义一个全局的变量用来记录CLLocationManager对象,引入CoreLocation.framework使用#import <CoreLocation/CoreLocation.h>1 @property (nonatomic, strong) CLLocationManager *locationManager; 2.初始化CLLocationManager并开始定位 -(CLLocationManager *)locationM

iOS:地图:MapKit和CoreLocation

地图:MapKit和CoreLocation 简介: 现在很多的社交软件都引入了地图和定位功能,要想实现这2大功能,那就不得不学习其中的2个框架:MaKit和CoreLocation CoreLocation框架可以使用硬件设备来进行定位服务 MapKit框架能够使应用程序做一些地图展示与交互的相关功能 几乎所有的iOS设备都支持位置服务,不过在使用位置服务之前,最好检查一下可用性 手机定位的三种方式:手机基站.WIFI.GPS 添加框架: #import <MapKit/MapKit.h>

【iOS开发-109】CoreLocation框架的两个主要类CLLocationManager和CLGeoCoder介绍

CoreLocation框架主要由两个常用的类,一个是CLLocationManager,一个是CLGeoCoder. (1)CoreLocation的使用,先导入CoreLocation框架. (2)一般是利用位置管理器来操作,即CLLocationManager --开启,就是startUpdatingLocation:关闭,就是stopUpdatingLocation --可以先判断位置服务是否开启locationServicesEnabled,如果没开启,直接返回空,不操作. --iOS

CoreLocation框架之APP定位

#import "ViewController.h" //导入CoreLocation库后导入其头文件 #import <CoreLocation/CoreLocation.h> //从iOS8开始,框架的导入也可以使用这种方式 //@import CoreLocation; @interface ViewController ()<CLLocationManagerDelegate> @property (nonatomic, strong)CLLocatio