首先导入CoreLocation.framework,然后再引入头文件#import 

定义属性

@property (nonatomic , strong)CLLocationManager *locationManager;

然后使用代理  CLLocationManagerDelegate

- (void)locate{// 判断定位操作是否被允许if([CLLocationManager locationServicesEnabled]) {//定位初始化_locationManager=[[CLLocationManager alloc] init];_locationManager.delegate=self;_locationManager.desiredAccuracy=kCLLocationAccuracyBest;_locationManager.distanceFilter=10;[_locationManager startUpdatingLocation];//开启定位}else {//提示用户无法进行定位操作UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@提示 message:@定位不成功 ,请确认开启定位 delegate:nil cancelButtonTitle:@取消 otherButtonTitles:@确定, nil];[alertView show];}// 开始定位[_locationManager startUpdatingLocation];
}#pragma mark - CoreLocation Delegate-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
{//此处locations存储了持续更新的位置坐标值,取最后一个值为最新位置,如果不想让其持续更新位置,则在此方法中获取到一个值之后让locationManager stopUpdatingLocationCLLocation *currentLocation = [locations lastObject];// 获取当前所在的城市名CLGeocoder *geocoder = [[CLGeocoder alloc] init];//根据经纬度反向地理编译出地址信息[geocoder reverseGeocodeLocation:currentLocation completionHandler:^(NSArray *array, NSError *error){if (array.count > 0){CLPlacemark *placemark = [array objectAtIndex:0];//NSLog(@%@,placemark.name);//具体位置//获取城市NSString *city = placemark.locality;if (!city) {//四大直辖市的城市信息无法通过locality获得,只能通过获取省份的方法来获得(如果city为空,则可知为直辖市)city = placemark.administrativeArea;}cityName = city;NSLog(@定位完成:%@,cityName);//系统会一直更新数据,直到选择停止更新,因为我们只需要获得一次经纬度即可,所以获取之后就停止更新[manager stopUpdatingLocation];}else if (error == nil && [array count] == 0){NSLog(@No results were returned.);}else if (error != nil){NSLog(@An error occurred = %@, error);}}];
}

在 viewDidLoad 中调用了locate之后一直没有数据返回,代理也不执行,在网上找了很多教程,代码大多大同小异,但是结果都是不理想,偶然之间看到ios8的定位和低版本的不同,我的手机刚好是ios8,便点开那个博客去看看, 博客请点此进入

以下为该博客摘要:

在iOS8以前的版本中,我们使用CLLocationManager定位是没有问题的,最近在iOS8系统中却无法定位了。。。。这是一大问题啊!

iOS8中使用CoreLocation定位

1、在使用CoreLocation前需要调用如下函数【iOS8专用】:
iOS8对定位进行了一些修改,其中包括定位授权的方法,CLLocationManager增加了下面的两个方法:
(1)始终允许访问位置信息

- (void)requestAlwaysAuthorization;

(2)使用应用程序期间允许访问位置数据

- (void)requestWhenInUseAuthorization;

示例如下:

locationManager=[[CLLocationManager alloc] init];locationManager.delegate=self;locationManager.desiredAccuracy=kCLLocationAccuracyBest;locationManager.distanceFilter=10;if (iOSVersion>=8) {[locationManager requestWhenInUseAuthorization];//使用程序其间允许访问位置数据(iOS8定位需要)}[locationManager startUpdatingLocation];//开启定位

2、在Info.plist文件中添加如下配置:
(1)NSLocationAlwaysUsageDescription
(2)NSLocationWhenInUseUsageDescription

这样添加后,定位功能就能正常使用了!



 //计算两个位置之间的距离
71 -(void)countDistance
72 {
73     //根据经纬度创建两个位置对象
74     CLLocation *loc1=[[CLLocation alloc]initWithLatitude:40 longitude:116];
75     CLLocation *loc2=[[CLLocation alloc]initWithLatitude:41 longitude:116];
76     //计算两个位置之间的距离
77     CLLocationDistance distance=[loc1 distanceFromLocation:loc2];
78     NSLog(@"(%@)和(%@)的距离=%fM",loc1,loc2,distance);
79 }

 

iOS自带的GPS 定位相关推荐

  1. uniapp | 打开iOS和Android实现GPS定位权限

    原来真的有人,删掉手机里所有的娱乐软件,不管不顾任何东西,没日没夜的学习,就只是为了回到原来那个眼里有光被赋予希望的自己. 你要坚信每一个你想学习的念头,都是未来在向你求救! 懒惰是一个特别奇怪的东西 ...

  2. iphone gps android,iPhoneX与iPhone8出现GPS定位不准故障 新版iOS系统或能修复

    [TechWeb报道]11月10日消息,据国外媒体AppleInsider报道,在苹果社区支持论坛上,不断有帖子表明,iPhone X和iPhone 8手机在GPS定位的精度上出现了问题,但最新的iO ...

  3. iOS 自带定位服务

    原文地址:http://cnbin.github.io/blog/2015/07/04/ios-zi-dai-ding-wei-fu-wu/ 定位服务 iOS 7 提供了4种不同的途径进行定位,具体如 ...

  4. android 自带gps定位Location相关知识

    android自带gps定位功能相信大家都不会太陌生了,都有所涉及.简单的写了一个示例程序,获取经纬度还有其它相关数据的代码,还有其他相关的知识,比如直接跳转到打开系统gps设置的界面.还有一个bug ...

  5. 使用带GPS模块的LTE Cat.4模组获取GPS定位信息

    上海域格miniPCIe LTE模组 CLM920 NC5 mdgv为Cat.4模组,且带有GPS模块可支持获取GPS定位信息: 将CLM920 NC5 MGC模组连接到PC上,安装驱动后,可以在设备 ...

  6. HTML5缓存和GPS定位

    HTML5缓存 我们在访问网站的时候,会从网站服务器中下载很多数据,其中包括css文件.图片文件.js文件.音频文件等等,有时候一个页面这种零零散散的文件就要下载上百个,可以打开浏览器的开发者工具,点 ...

  7. 一篇关于GPS定位写得最详实清晰的文章之一

    一篇关于GPS定位写得最详实清晰的文章之一 介绍篇 过去,如果你的女友是个路痴,大概会有这样的对话-- --你在哪儿呢? --啊?我在马路上啊. --有什么特征? --头顶有个月亮. --你旁边有什么 ...

  8. 这应该是关于GPS定位写得最详实清晰的文章之一

    本文咱们就说说和物联网关系密切的卫星定位那些事儿. 介绍篇 过去,如果你的女友是个路痴,大概会有这样的对话-- --你在哪儿呢? --啊?我在马路上啊. --有什么特征? --头顶有个月亮. --你旁 ...

  9. iOS自带地图纠偏问题

    ----纠偏 篇----.. 1. 涉及接口:<CoreLocation/CoreLocation.h> 2. 核心代码解读: if ([CLLocationManager locatio ...

  10. Delphi APP 開發入門(五)GPS 定位功能

    Delphi APP 開發入門(五)GPS 定位功能 分享: Share on facebookShare on twitterShare on google_plusone_share 閲讀次數:3 ...

最新文章

  1. Java堆外内存的使用
  2. 团队项目第一阶段冲刺站立会议1(4月18日)
  3. 学好python能干嘛-python都能做什么
  4. java 很多if_java 使用策略模式解决代码中包含太多的if else
  5. 微软Windows SharePoint Services 3.0 应用程序模板( Templates)中文版推出了
  6. squirrelsql安装
  7. html图片标签和语义化标签和音频
  8. matlab中的级数怎默算_matlab级数求和代码
  9. OAuth2.0 微信授权机制
  10. php爆数据库,php+MySql注入非暴力爆数据库表段
  11. 十大经典排序算法5(Python版本)
  12. 关于城市旅游的HTML网页设计-----郑州(10页) 基于HTML+CSS+JavaScript旅游网站设计与实现 静态HTML旅行主题网页作业
  13. 在深度学习时代如何用 HowNet 搞事情 | 讲座笔记
  14. 信道编码与信源编码基本
  15. 2021 Alexa SmartHome Skill 对接(二)配置及服务对接
  16. PBR 六 材质参数
  17. 如何设计过压保护电路?
  18. 美团智能支付背后的前端工程师
  19. 点赋网络:网店详情页设计中应包含哪些设计元素
  20. 注意BeanPostProcessor启动时对依赖Bean的“误伤”陷阱(is not eligible for getting processed by all...)

热门文章

  1. WordPress简约mkBlog博客主题模板v2.1
  2. Linux常用软件包
  3. 从混沌熬到风口:移动FM的五年之争
  4. Android与iPhone的对比
  5. html上传文件出现fakepath,IE8上传文件时获取文件本地路径问题(C:\fakepath\……)的解决...
  6. 计算机课flash课件,flash课件在计算机教学过程中的应用
  7. c语言编写五子棋报告,C语言编写五子棋游戏
  8. 压缩包密码,办公文档密码破解实例讲解!
  9. [【转】TOMATO DDWRT中几种无线模式的使用
  10. 浪曦视频--工厂方法模式