iOS获取当前城市

@property (nonatomic ,retain )CLLocationManager *locationManager;

4.開始定位

  • (void)locate

//推断定位操作是否被同意

if ([CLLocationManagerlocationServicesEnabled ]) {

self.locationManager = [[CLLocationManager alloc] init] ;

self .locationManager .delegate =self ;

}else {

//提示用户无法进行定位操作

UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:

@”提示”message :@”定位不成功,请确认开启定位”delegate:nilcancelButtonTitle :@”取消”otherButtonTitles :@”确定”,nil ];

[alertView show];

// 開始定位

[self .locationManagerstartUpdatingLocation ];

5.实现定位协议回调方法

pragma mark – CoreLocation Delegate

-(void)locationManager:(CLLocationManager )manager didUpdateLocations:(NSArray )locations

//此处locations存储了持续更新的位置坐标值,取最后一个值为最新位置,假设不想让其持续更新位置,则在此方法中获取到一个值之后让locationManager stopUpdatingLocation

CLLocation *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];

//将获得的全部信息显示到label 上

NSLog(@”%@”,placemark.name);

//获取城市

NSString *city = placemark.locality;

if (!city) {

//四大直辖市的城市信息无法通过locality获得,仅仅能通过获取省份的方法来获得(假设city为空,则可知为直辖市)

city = placemark.administrativeArea;

self.cityName = city;

else if (error == nil && [array count] == 0)

NSLog (@”No results were returned.”);

else if (error != nil)

NSLog (@”An error occurred = %@”, error);

}];

//系统会一直更新数据。直到选择停止更新。由于我们仅仅须要获得一次经纬度就可以,所以获取之后就停止更新

[managerstopUpdatingLocation ];

  • (void)locationManager:(CLLocationManager *)manager

didFailWithError:(NSError *)error {

if (error.code == kCLErrorDenied) {

// 提示用户出错原因。可按住Option 键点击 KCLErrorDenied 的查看很多其它出错信息,可打印error.code 值查找原因所在

Original: https://www.cnblogs.com/mthoutai/p/7400954.html
Author: mthoutai
Title: iOS获取当前城市

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/552796/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • java学习之SpringMVC

    Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。 Spring MVC 是结构最清晰的 Servl…

    技术杂谈 2023年6月21日
    087
  • 保姆教程系列三、Nacos Config-服务配置

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 上篇我们介绍到 保姆教程系列二、Nacos实现注册中心 配置中心原理 一、 服务配置中心介绍 首先我们来看一下,微…

    技术杂谈 2023年7月11日
    0101
  • 五岔路口交通问题

    前言 五岔路口交通问题是已经给定了道路的通行情况,我们可以直接分析得到所有合法的道路通行方式,然后根据这些再得到不同方式之间的通行关系 建图过程 建点 如图 E为入口,是 单行道;…

    技术杂谈 2023年7月11日
    0101
  • image图片

    *image图片的私有属性 属性 说明 isCircle 是否圆图,true表示圆形,默认值false标示方形 url 图片的链接 <image url="…&…

    技术杂谈 2023年6月1日
    079
  • ifmodule

    <ifmodule test>…</ifmodule test>配置段用于封装根据指定的模块是否启用而决定是否生效的指令。在 <ifmodule&…

    技术杂谈 2023年5月31日
    097
  • UML图

    依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类…

    技术杂谈 2023年5月31日
    094
  • mysql 8.0.28 查询语句执行顺序实测结果

    TL;NRs 根据实测结果,MySQL8.0.28 中 SQL 语句的执行顺序为: (7) SELECT (5) DISTINCT (1) FROM (3) JOIN (2/4) …

    技术杂谈 2023年7月25日
    077
  • Go实现安全双检锁的方法和最佳实践

    不安全的双检锁 从其他语言转入Go语言的同学经常会陷入一个思考:如何创建一个单例? 有些同学可能会把其它语言中的双检锁模式移植过来,双检锁模式也称为懒汉模式,首次用到的时候才创建实…

    技术杂谈 2023年7月11日
    0111
  • html换行的方法

    1、使用 1 <html> 2 <body> 3 <p> 4 春眠不觉晓&…

    技术杂谈 2023年7月11日
    071
  • 【赵渝强老师】阿里云大数据ACP认证之阿里大数据产品体系

    阿里大数据产品体系是基于阿里云飞天平台上的数据处理服务。主要分为 阿里云大数据基础产品和 阿里云数加平台,其产品架构图如下所示: 一、阿里云大数据基础产品 1、云数据库——RDS(…

    技术杂谈 2023年7月24日
    091
  • 「Elasticsearch」SpringBoot快速集成ES

    Elastic Search 的底层是开源库 Lucene。但是Lucene的使用门槛比较高,必须自己写代码去调用它的接口。而Elastic Search的出现正是为了解决了这个问…

    技术杂谈 2023年7月24日
    072
  • 成大事者,必精读也!!!

    一:沉稳 (1)不要随便显露你的情绪。 (2)不要逢人就诉说你的困难和遭遇。 (3)在征询别人的意见之前,自己先思考,但不要先讲。 (4)不要一有机会就唠叨你的不满。 (5)重要的…

    技术杂谈 2023年7月23日
    069
  • PageHelper的使用

    PageHelper pagehelper是mybatis的一个插件,其作用是更加方便地进行分页查询 分页查询的实现有两种方式 1:直接在sql中使用 limit子句 进行分页查询…

    技术杂谈 2023年5月31日
    0111
  • Centos7 安装Git 版本控制

    Centos7 安装Git 版本控制 最近开始认真学习一遍git ,虽然已经使用git 蛮久了,但是其实对这个的了解 可能也就是 使用层面了。。提供一个 git 官网 zh (中文…

    技术杂谈 2023年7月10日
    081
  • 使用java调用 salesforce SOAP API

    可以从github上下载最新版本然后用maven工具构建 下面列下我用wsc工具打成jar包测试过程中的代码: java -cp force-wsc-27.0.0-jar-with…

    技术杂谈 2023年7月25日
    086
  • 使用Gulp和Browserify创建多个绑定文件

    Browserify是一个Javascript的绑定工具,帮助我们理顺module之间的依赖关系。Gulp用来优化workflow。两者的共同点都是使用流,但在使用流方面也有不同之…

    技术杂谈 2023年5月31日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球