博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 定位功能
阅读量:4563 次
发布时间:2019-06-08

本文共 879 字,大约阅读时间需要 2 分钟。

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

首先一个问题是,在模拟器中,遵守了协议,设置了代理,却不走代理方法,为什么呢,这是因为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.

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

这样就可以了!

转载于:https://www.cnblogs.com/songwentao/p/4244047.html

你可能感兴趣的文章
xml常用方法
查看>>
Cube Stacking(并差集深度+结点个数)
查看>>
AndroidStudio3更改包名失败
查看>>
jq 删除数组中的元素
查看>>
添加按键事件处理及事件处理的参数传递
查看>>
js URL中文传参乱码
查看>>
Leetcode 367. Valid Perfect Square
查看>>
UVALive 3635 Pie(二分法)
查看>>
win系统查看自己电脑IP
查看>>
Backup&recovery备份和还原 mysql
查看>>
全局变量、局部变量、静态全局变量、静态局部变量的区别
查看>>
一道面试题及扩展
查看>>
Unity 3D 我来了
查看>>
setup elk with docker-compose
查看>>
C++ GUI Qt4学习笔记03
查看>>
Java基础回顾 —反射机制
查看>>
c# 前台js 调用后台代码
查看>>
2017-02-20 可编辑div中如何在光标位置添加内容
查看>>
$.ajax()方法详解
查看>>
day42
查看>>