CoreLocation的变化-iOS8
2016-02-18 15:00
543 查看
题外话:
很多时候,我们都要以归零的心态,变化的姿态面对每一天。新闻刚刚推送ApplePay 于2.18正式登录中国。今天一早在公司楼下seven-eleven买早餐,刚走到门前,看着门上贴着“Pay”的标示,心想太快了,走到办公室,一打开手机,一看app更新,大部分都以Apple Pay上线为重大更新亮点,如此这样,我该做些什么,像其他人无所事事的一样绑定银行卡?不能吧,我想这个框架在我做的APP中还没有使用,我该如何学一下使用,虽然不难,至少得去看一下。。。要不然又要被鄙视啦。。。你不进步,有人进步。不要在一个地方工作感觉太安逸啦,我们的年龄还不是选择安逸的时候。你不淘汰工作,工作会淘汰你。
回正题:CoreLocation的变化-iOS8
Delegate 代理方法不响应了。
iOS8需要一下设置
在info.Plist中追加下面两个字段 (必须有,最少一个,内容是系统ALert的提示语String,提示语可为空)
NSLocationWhenInUseDescription(使用应用程序期间)
NSLocationAlwaysUsageDescription(始终)
查看一下是否开启定位 服务
创建CLLocationManager对象
代理方法,用户授权允许应用程序使用位置信息时AuthorizationStatus状态改变
代理方法,获取位置信息
OK完成
注:
当第一次安装App时,调用locationManager.requestWhenInUseAuthorization(),
如果定位未打开,提示如图所示:
![](http://img.blog.csdn.net/20160218145652978)
定位打开:提示如图
很多时候,我们都要以归零的心态,变化的姿态面对每一天。新闻刚刚推送ApplePay 于2.18正式登录中国。今天一早在公司楼下seven-eleven买早餐,刚走到门前,看着门上贴着“Pay”的标示,心想太快了,走到办公室,一打开手机,一看app更新,大部分都以Apple Pay上线为重大更新亮点,如此这样,我该做些什么,像其他人无所事事的一样绑定银行卡?不能吧,我想这个框架在我做的APP中还没有使用,我该如何学一下使用,虽然不难,至少得去看一下。。。要不然又要被鄙视啦。。。你不进步,有人进步。不要在一个地方工作感觉太安逸啦,我们的年龄还不是选择安逸的时候。你不淘汰工作,工作会淘汰你。
回正题:CoreLocation的变化-iOS8
iOS8修改位置设置的内容
即:增加了一套状态(使用应用程序期间中/始终可用),所以以前的CLLcationManage的注册后,Delegate 代理方法不响应了。
iOS8需要一下设置
在info.Plist中追加下面两个字段 (必须有,最少一个,内容是系统ALert的提示语String,提示语可为空)
NSLocationWhenInUseDescription(使用应用程序期间)
NSLocationAlwaysUsageDescription(始终)
查看一下是否开启定位 服务
if !CLLocationManager.locationServicesEnabled() { debugPrint("定位服务尚未打开。设置->隐私-> 定位服务") }
创建CLLocationManager对象
locationManager = CLLocationManager() if CLLocationManager.authorizationStatus() == CLAuthorizationStatus.NotDetermined {//kCLAuthorizationStatusNotDetermined debugPrint("开始:定位服务还未授权") locationManager.requestWhenInUseAuthorization() } locationManager.delegate = self //控制定位精度 locationManager.desiredAccuracy = kCLLocationAccuracyBest //控制定位服务更新频率:每隔多少米定位一次 locationManager.distanceFilter = 1 //启动所有定位硬件 locationManager.startUpdatingLocation() //关闭stopUpdatingLocation
代理方法,用户授权允许应用程序使用位置信息时AuthorizationStatus状态改变
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) { debugPrint(status.rawValue) }
代理方法,获取位置信息
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let geocoder : CLGeocoder = CLGeocoder() let newLocation : CLLocation = locations.first! geocoder.reverseGeocodeLocation(newLocation) { (placemarks : [CLPlacemark]?, error: NSError?) -> Void in for place in placemarks! { debugPrint("位置信息:\(place.addressDictionary)") } } }
OK完成
注:
当第一次安装App时,调用locationManager.requestWhenInUseAuthorization(),
如果定位未打开,提示如图所示:
定位打开:提示如图
相关文章推荐
- iOS常用的持久化存储方式
- iOS开发篇(六)Masonry三方框架的使用与介绍
- iOS开发之真机调试
- iOS中修改系统自带的软件上文字描述为中文显示
- 一种iOS7 设置隐藏状态栏的方法
- iOS ANE 真机运行时报错
- IOS算法(三)之插入排序
- ios使用常用正则表达式验证密码身份证手机号
- IOS开发之常见bug
- iOS Document Interaction(预览和打开文档) 编程指南
- iOS单元测试(作用及入门提升)
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- 饿汉单例和懒汉单例
- Missing iOS Distribution signing identity for
- iOS两种官方的单例模式写法
- iOS开发--AVFoundation自定义相机
- 源码推荐(02.18B):高仿版QQ最新版,iOS离线缓存
- ios 计时lable
- iOS- 指压即达,如何集成iOS9里的3D Touch
- Ios开发之定位CLLocationManager