didUpdateLocations代替didUpdateToLocation

本文详细解析了iOS6中CLLocationManager的didUpdateLocations方法替代didUpdateToLocation的使用。介绍了如何通过新方法获取最后一次位置更新,并解释了位置数组的引入原因,以及如何在支持iOS5和6时进行适配。

与iOS6的苹果didUpdateLocations代替didUpdateToLocation的释放。任何人都可以解释如何didUpdateLocations?

1. 我以下的委托,以获得最后一个位置?

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

上述委托弃用的iOS 6。现在,下面应该

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

为了获得最后的位置,只需获取数组的最后一个对象:

[locations lastObject]

换句话说,[locations lastObject](新代表)等于newLocation(老代表)。

 
2. 它给你的对象数组来访问最后一个位置你

[locations lastObject]

由此

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

 

3. 

这里没有其他的答案中解释了为什么有一个位置数组,以及如何将新didUpdateLocations:提供的数组。 贬低的目的locationManager:didUpdateToLocation:fromLocation:和发送位置一个NSArray,而不是在后台运行时降低功耗。 与iPhone 5开始时 CodeGo.net,GPS芯片具有存储位置的一段,然后传送在一次数组中的他们所有的能力。这被称为延迟的位置更新。这允许主CPU进入睡眠状态,而在背景中较长的时间。的iOS不具备启动主CPU的每个位置更新时,CPU可以睡,而GPS芯片集的位置。 您可以检查这个deferredLocationUpdatesAvailable方法。如果可用,您可以启用allowDeferredLocationUpdatesUntilTraveled:timeout:方法。条件适用,看到这个答案的细节。

 

4. 如果你支持的iOS 5和6,你应该叫

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

从旧

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

函数,通过建立的位置的数组。

转载于:https://www.cnblogs.com/ChouDanDan/p/5364575.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值