60、利用 Core Location 和 Map Kit 定位:开发“WhereAmI”应用

利用 Core Location 和 Map Kit 定位:开发“WhereAmI”应用

1. 明智使用位置管理器

如果仅需确定当前位置且无需持续更新,应让位置委托在获取应用所需信息后立即停止位置管理器。若需轮询,应尽快停止。因为只要从位置管理器获取更新,就会消耗用户电池电量。

要停止位置管理器向其委托发送更新,可调用 stopUpdatingLocation 方法,示例代码如下:

locationManager.stopUpdatingLocation()
2. 位置管理器委托

位置管理器委托必须遵循 CLLocationManagerDelegate 协议,该协议定义了多个可选方法。当用户对使用位置服务的授权状态改变、确定当前位置或检测到位置变化,以及位置管理器遇到错误时,会分别调用不同的方法。在应用中需实现这些委托方法。

3. 获取位置更新

当位置管理器要通知其委托当前位置时,会调用 locationManager(_, didUpdateLocations:) 方法。该方法有两个参数:
- 第一个参数是调用该方法的位置管理器。
- 第二个参数形式上是 AnyObjects 数组,但实际包含描述设备当前位置及可能的前几个位置的 CLLocation 对象。若短时间内有多次位置更新,可能通过一次调用该方法一并报告。最新位置始终是数组的最后一项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值