使用CLLocationManager获取单个位置更新
我有一个独特的要求来提供设备位置。这是独一无二的,因为我需要打开位置更新,抓取设备位置,然后立即关闭更新(关于电池寿命要求)。由于它可能需要一段时间才能拿到的位置,我对下面的代码示例有些担忧......使用CLLocationManager获取单个位置更新
-(CLLocation *)getActualLocation{ CLLocation *actualLocation;
[coreLocationManager startUpdatingLocation];
actualLocation = [coreLocationManager location];
// stop updates
return actualLocation;
}
...因为调用设置任何更新将以前actualLocation
将可能被执行。有关如何解决这个问题的任何建议?谢谢!
回答:
由于iOS9的停止位置的经理,你可以调用它,你描述了哪些新requestLocation()方法,确保转弯的位置离
官方文档之前只有一个回调:https://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/#//apple_ref/occ/instm/CLLocationManager/requestLocation
博客文章:http://szulctomasz.com/ios-9-getting-single-location-update-with-requestlocation/
回答:
你最好的选择imho是等待第一个位置更新被传递,然后立即停止位置更新。这仍然可能会使您处于过时或非常不准确的状态,但如果需要,您可以在代表中检查这些状态。
开始更新后直接获取位置可能不会带来好结果,因为更新已完成异步并且结果将不可用。
iOS在位置更新期间已经在降低功耗方面做得很好,所以这应该不是什么大不了的事。
回答:
Let it delegate to you
这总是需要一个异步操作,所以你必须要能更新和等待,直到你得到反馈。一旦进来,你可以从更新
以上是 使用CLLocationManager获取单个位置更新 的全部内容, 来源链接: utcz.com/qa/257780.html