随着基于位置服务LBS和移动互联网的兴起,你的位置是越来越重要的一个信息。位置服务已经是当前的热门应用如微信。陌陌等社交应用的杀手锏。而在iOS开发中,苹果已经给我们提供了一个位置接口。CoreLocation,我们能够使用该接口方便的获得当前位置的经纬度信息。详细实现例如以下:

(1)新建基于Swift的iOS项目。在ViewController中导入CoreLocation接口:

import CoreLocation

(2)在ViewController类中实现例如以下:

import UIKit
import CoreLocation class ViewController: UIViewController,CLLocationManagerDelegate { let locationManager:CLLocationManager = CLLocationManager() override func viewDidLoad() {
super.viewDidLoad() locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest if ios8(){ locationManager.requestAlwaysAuthorization() }
locationManager.startUpdatingLocation()
} func ios8()->Bool{ return UIDevice.currentDevice().systemVersion == "8.0" } func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!){ var location:CLLocation = locations[locations.count-1] as! CLLocation
if(location.horizontalAccuracy > 0){ println("纬度=\(location.coordinate.latitude) ;经度=\(location.coordinate.longitude)") locationManager.stopUpdatingLocation()
}
} func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!){ println(error)
} override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
} }

(3)因为位置信息是比較隐私的信息,訪问用户位置信息前要征求用户的允许,所以须要在执行前进行提示:在Info.plist中配置内容:

key-value    :  NSLocationUsageDescription     "程序要訪问您的位置信息"

key-value   :   NSLocationAlwaysUsageDescription     "程序要訪问您的位置信息"

(4)执行程序。查看结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">。

总结一下。对于程序输出结果。和我当前所处城市的位置信息进行比較,发现存在较大误差。我也不清楚这个因为什么原因,眼下我在南方某城,经纬度信息却是在北方,可能是苹果的位置服务有bug吧。

眼下国内基于百度地图API,高德地图等开发的应用也是比較多的,之前我也用百度地图Android SDK开发过应用。接口也是很方便。定位等服务也是比較全面的,很适合开发,个人觉得假设要进行位置服务,还是不要用苹果自带的吧。。。

github主页:https://github.com/chenyufeng1991  。欢迎大家訪问。

iOS项目开发实战——使用CoreLocation获取当前位置信息的更多相关文章

  1. 聚合数据 iOS 项目开发实战:条码查询器

    记录下,聚合数据 iOS 项目开发实战:条码查询器:视频地址:http://www.jikexueyuan.com/course/324.html 条码查询API:https://www.juhe.c ...

  2. iOS项目开发实战——学会使用TableView列表控件(四)plist读取与Section显示

    文本将会实现把数据存储到plist文件里.然后在程序中进行读取.在TableView控件中依据不同的类别显示Section. 有关TableView 的其它实现,请參考<iOS项目开发实战--学 ...

  3. iOS项目开发实战——iOS网络编程获取网页Html源码

    现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来 ...

  4. iOS项目开发实战——通过Http Get方式与server通信

    移动client往往须要同后台server进行通信,上传或者下载数据,最经常使用到的方式就是Http Get,如今我们来学习在iOS项目中使用Get方式同server进行通信. [一]server端实 ...

  5. iOS项目开发实战——plist数组解析

    plist数据是苹果公司创造的数据格式,基于XML,因为在iOS,Mac系统中操作plist很方便,所以我们经常会用到.在iOS项目中.系统会自己主动生成一个Info.plist文件,里面存放了iOS ...

  6. iOS项目开发实战——使用同步请求获取网页源码

    网络请求一般分为同步请求和异步请求,同步请求假设訪问时间过长,会造成界面卡死状态,用户体验不是非常好.可是请求速度较快的话,也能够考虑使用同步訪问.如今先来学习同步訪问. (1)在viewDidLoa ...

  7. iOS项目开发实战——使用Xcode6设计自己定义控件与图形

    在iOS开发中,有很多控件都是Xcode默认提供的.使用这些控件是很方便的.可是因为某些须要.须要自己设计控件,那么应该怎么做呢?在Xcode6中提供了这种接口,同意开发人员高速开发自己定义控件,而且 ...

  8. iOS项目开发实战——学会使用TableView列表控件(二)

    要在iOS开发中使用TableView列表控件,不仅能够直接使用TableViewController作为整个主界面,并且还能够使用TableView控件来实现.使用TableView能够进行很多其它 ...

  9. iOS项目开发实战——自己定义圆形进度提示控件

    iOS中默认的进度条是水平方向的进度条,这往往不能满足我们的需求. 可是我们能够自己定义类似的圆形的进度提示控件,主要使用iOS中的画图机制来实现. 这里我们要实现一个通过button点击然后圆形进度 ...

随机推荐

  1. 17-7-26-react-router入门

    完蛋了,上司最近都和颜悦色的,搞得我跑路的决心大大减退,不过还是要跑路.毕竟面向工资编程.今天一天基本都在挑项目的CSS,由于是别人哪里直接copy的,然后css我也直接copy的codepen上的源 ...

  2. ActiveMQ 认证(一)

    新搭建的ActiveMQ服务,在发布和读取消息时,连接的权限为ActiveMQConnection.DEFAULT_USER和ActiveMQConnection.DEFAULT_PASSWORD. ...

  3. python3-开发进阶Django-CBV和FBV及CBV的源码分析

    一.CBV和FBV 全称应该是class base views 和function base views理解起来应该就是基于类的视图函数和基于函数的视图函数 FBV 应该是我目前最常用的一种方式了,就 ...

  4. java面试笔试总结(一)--亲生经历的面试题

    说明:本文只是自己的一些心得体会,答案也是自己写的,正确与否,还需考证 java笔试题    1java笔试题1 启动3个线程打印递增的数字, 线程1先打印1,2,3,4,5, 然后是线程2打印6,7 ...

  5. 十一. 图形、图像与多媒体5.Graphics2D类的绘图方法

    Java语言在Graphics类提供绘制各种基本的几何图形的基础上,扩展Graphics类提供一个Graphics2D类,它拥用更强大的二维图形处理能力,提供.坐标转换.颜色管理以及文字布局等更精确的 ...

  6. FutureTask源码分析

    1. 常量和变量 private volatile int state; // 任务状态 private static final int NEW = 0; private static final ...

  7. JAVA使用POI如何导出百万级别数据(转载)

    用过POI的人都知道,在POI以前的版本中并不支持大数据量的处理,如果数据量过多还会常报OOM错误,这时候调整JVM的配置参数也不是一个好对策(注:jdk在32位系统中支持的内存不能超过2个G,而在6 ...

  8. Codeforces Beta Round #3 B. Lorry 暴力 二分

    B. Lorry 题目连接: http://www.codeforces.com/contest/3/problem/B Description A group of tourists is goin ...

  9. mysql锁机制整理

    Auth: jinDate: 20140506 主要参考整理资料MYSQL性能调优与架构设计-第七章 MYSQL锁定机制http://www.cnblogs.com/ggjucheng/archive ...

  10. django 模板实现换行

    django中的模板并不能实现自动换行,遇到/n的话不会自动换行,毕竟/n是python里面的换行符,html怎么可能认识呢? 那如何实现在模板中换行呢 <p> {{ article.co ...