从零开始学iOS7开发系列3-我的地盘我做主-Cha9!
!
原及例代码来raywenderlich store中的iOS Apprentice 系列3教程,经过翻译和改编。!
!
版权归原作者所有,本系列教程仅供学习参考使,感兴趣的朋友建议购买原英教程教程(The
iOS Apprentice Second Edition: Learn iPhone and iPad Programming via Tutorials!)。!
购买链接:!
http://www.raywenderlich.com/store !
!
最近玩炉有点迷,顺便看了下较的个节操(贬义)游戏解说视频,如夏可,星际
少帮主,毕游侠神的,推荐家假期可以好好看看,玩玩。!
!
神?你竟然问我天梯排名多少?这不是拍脸死的节奏吗?!!
那啥,我们还是开始学习本课的内容吧,看我怎么各种SY(术
语)虐死你。!
!
先还是回顾下上期节内容。恩,怎么觉得哪有点不对。!
在上期节中,我们学习了如何利Core Location框架来获取个CLLocation对象,且了解了
如何处理不同的错误信息。接下来该肿么办?!
!
好吧,如果你够细,会看到Core Location直在努寻找新的位置信息对象,直在努,直
在努......即便最终的坐标已经不再发任何变化了,还是直在努,直在努…这是因为户
可能会时不时两步,然后他们的位置信息也的确发变化了。不过这我们不打算搞个导航应
,因此当我们觉得位置信息已经够准确了以后,就需要通知location manager停发送位置信息
更新。!
!
这点很重要,因为获取位置信息更新很耗电,因为在这个过程中需要保持GPS/Wi-Fi/蜂窝络信
号的开启。我们这款应并不需要随时请求GPS信息,因此当位置信息差不多了的时候就该消停
会了。!
!
问题在于,怎么来判断这个位置信息已经够精确了呢?!
!
这个的确要动下脑。这给出的解决办法是:如果最后获得的个坐标信息没有明显的变化,
那么就说明位置信息基本上就差不多准确了,此时就可以让定位的硬件元件休息下省省电了。!
!
!
在CurrentLocationViewController.m中更改didUpdateLocations法如下:!
!
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{!
!
CLLocation *newLocation = [locations lastObject];!
NSLog(@"已更新坐标,当前位置:%@",newLocation);!
!
if([newLocation.timestamp timeIntervalSinceNow] < -5.0){!