使用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

回到顶部