iOS 定位功能

最近做的项目里用到了定位,不是地图定位,只是单纯的获取经纬度,甚至都不用转化为具体的地理信息,原本以为很好做的,但是写了几个小时才搞好,中间遇到几个问题,现在记下来吧。

首先一个问题是,在模拟器中,遵守了协议,设置了代理,却不走代理方法,为什么呢,这是因为xcode升级造成的定位权限设置问题。

升级xcode6以后打开以前xcode5工程,程序不能定位。工程升级到xcode6编译时需要iOS8 要自己写授权,不然没权限定位。

解决方法:

首先在 info.plist里加入对应的缺省字段 ,值设置为YES(前台定位写上边字段,前后台定位写下边字段)

NSLocationWhenInUseUsageDescription  //允许在前台获取GPS的描述

NSLocationAlwaysUsageDescription  //允许在前、后台获取GPS的描述

然后在代码中写上

if ([[[UIDevice currentDevice] systemVersion] doubleValue] > 8.0)

{

//设置定位权限 仅ios8有意义

[self.locationManager requestWhenInUseAuthorization];// 前台定位

//  [locationManager requestAlwaysAuthorization];// 前后台同时定位

}

[self.locationManager startUpdatingLocation];

这样就可以定位了,现在可能还会遇到另一个问题:

Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed.

是的,走了报错的代理方法,如果你是真机的话应该没有这个问题,但是我是用的模拟器,我的做法是,重置模拟器,然后再设置模拟器的位置信息:调试 =》位置=》自定义

这样就可以了!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 导入框架 Xcode中添加“CoreLocation.framework” 导入主头文件 #import <Cor...
    stillwalking阅读 68,503评论 37 50
  • 今天做iOS项目的时候,需要通过定位来拿到当期城市的名称。百度地图SDK有这个功能,但为了不依赖第三方,这里我用i...
    原来你是这种花椒阅读 1,880评论 1 3
  • 学习定位,首先要了解它的含义,了解它的具体实现方法:下面介绍具体介绍它。一:介绍1、定位要使用CoreLocati...
    闯先生的猫阅读 1,232评论 1 4
  • 小序: 本文包括三个内容:①:定位功能的实现②:知道城市名拿到经纬度③:根据经纬度拿到日出日落时间关于定位我们要添...
    彭小先生阅读 532评论 0 3
  • 很难相信自己会写下这个题目。不过,还是喜欢聊聊生活,聊聊身边的生活。 我们的生活其实极少有人对自...
    7d3dec75a0f5阅读 196评论 0 0