iOS项目开发实战——使用CoreLocation获取当前位置信息
随着基于位置服务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获取当前位置信息的更多相关文章
- 聚合数据 iOS 项目开发实战:条码查询器
记录下,聚合数据 iOS 项目开发实战:条码查询器:视频地址:http://www.jikexueyuan.com/course/324.html 条码查询API:https://www.juhe.c ...
- iOS项目开发实战——学会使用TableView列表控件(四)plist读取与Section显示
文本将会实现把数据存储到plist文件里.然后在程序中进行读取.在TableView控件中依据不同的类别显示Section. 有关TableView 的其它实现,请參考<iOS项目开发实战--学 ...
- iOS项目开发实战——iOS网络编程获取网页Html源码
现在我们身处互联网的时代.不论什么一个软件或是App,都会或多或少与网络打交道,并不断发生数据交互.一个没有涉及网络编程的应用会显得比較low,这里我们将会開始使用Swift开发iOS应用,而且主要来 ...
- iOS项目开发实战——通过Http Get方式与server通信
移动client往往须要同后台server进行通信,上传或者下载数据,最经常使用到的方式就是Http Get,如今我们来学习在iOS项目中使用Get方式同server进行通信. [一]server端实 ...
- iOS项目开发实战——plist数组解析
plist数据是苹果公司创造的数据格式,基于XML,因为在iOS,Mac系统中操作plist很方便,所以我们经常会用到.在iOS项目中.系统会自己主动生成一个Info.plist文件,里面存放了iOS ...
- iOS项目开发实战——使用同步请求获取网页源码
网络请求一般分为同步请求和异步请求,同步请求假设訪问时间过长,会造成界面卡死状态,用户体验不是非常好.可是请求速度较快的话,也能够考虑使用同步訪问.如今先来学习同步訪问. (1)在viewDidLoa ...
- iOS项目开发实战——使用Xcode6设计自己定义控件与图形
在iOS开发中,有很多控件都是Xcode默认提供的.使用这些控件是很方便的.可是因为某些须要.须要自己设计控件,那么应该怎么做呢?在Xcode6中提供了这种接口,同意开发人员高速开发自己定义控件,而且 ...
- iOS项目开发实战——学会使用TableView列表控件(二)
要在iOS开发中使用TableView列表控件,不仅能够直接使用TableViewController作为整个主界面,并且还能够使用TableView控件来实现.使用TableView能够进行很多其它 ...
- iOS项目开发实战——自己定义圆形进度提示控件
iOS中默认的进度条是水平方向的进度条,这往往不能满足我们的需求. 可是我们能够自己定义类似的圆形的进度提示控件,主要使用iOS中的画图机制来实现. 这里我们要实现一个通过button点击然后圆形进度 ...
随机推荐
- [hdu-3007]Buried memory 最小覆盖圆
大致题意: 平面上有n个点,求一个最小的圆覆盖住所有点 最小覆盖圆裸题 学习了一波最小覆盖圆算法 #include<cstdio> #include<iostream> #in ...
- window10 Powershell使用curl命令报错解决方法
报错信息:curl : 无法分析响应内容,因为 Internet Explorer 引擎不可用,或者 Internet Explorer 的首次启动配置不完整.请指定 UseBasicParsing ...
- 使用Nginx的配置对cc攻击进行简单防御
ddos攻击:分布式拒绝服务攻击,就是利用大量肉鸡或伪造IP,发起大量的服务器请求,最后导致服务器瘫痪的攻击. cc攻击:类似于ddos攻击,不过它的特点是主要是发起大量页面请求,所以流量不大,但是却 ...
- 【高斯消元】BZOJ1013-[JSOI2008]球形空间产生器sphere
[题目大意] 给出n维空间中给出n+1个点的坐标,求出球心坐标. [思路] 令球心坐标为x1,x2...xn,假设当前第i个点坐标为a1,a2...,an,第i+1个点坐标为b1,b2...,bn,则 ...
- JavaScript中的with语句
执行环境的类型有两种:全局执行环境和局部执行环境(函数执行环境). 1.全局执行环境的变量对象是window对象,是JS代码开始运行时的默认环境.全局执行环境的变量对象始终都是作用域链中的最后一个对象 ...
- http://www.pass.org
http://www.pass.org/Learning/Recordings/Listing.aspx?category=conferences
- 明尼苏达推荐系统导论(第一课 欢迎来到RS)
一.RS介绍 1.显示评分:直接从用户来 隐式评分:从用户活动推测得到的 2.预测是偏好的估计,是预测缺失值,推荐是从其他用户推荐项目,是推荐感兴趣的项目. 3.协同表示利用其它用户的数据 二.欢迎来 ...
- Mac OS X 11年9个版本的历经变化
本月苹果将发布OS X 10.8 Mountain Lion,是Mac OS X系统在其11年生命长河中的第9个版本.2001年,刚从鬼门关爬回来的苹果决定在OS X上做一个赌注,因为他们已经浪费了1 ...
- asp.net core 系列之允许跨越访问(Enable Cross-Origin Requests:CORS)
这篇文章介绍如何允许跨域访问 浏览器安全不允许不同域名的网页之间发送请求.这种限制叫做同源策略(the same-origin policy). 同源策略可以防止一个恶意的站点读取另一个站点的敏感数据 ...
- JavaScript Dictionary
Excellent. The 4guysfromrolla example is very helpful, thanks. I've pasted a complete javascript.j ...