2013-06-12 18 views
0

在我的ios应用程序中,我使用定时器上的核心位置管理器来获取当前位置。该应用程序是可配置的,所以我允许用户将其设置为低至1分钟。因此,即使应用程序位于后台,也会每隔1分钟报告一次gps位置。IOS短时间内核的位置管理器

我不想使用核心位置管理器的重大更改,我想继续使用计时器,因为准确性会更好。

设置定时器低至5秒是否有任何可预见的问题?我这样做的理由是获取位置,将其保存在一个变量中,然后在5秒内重新获取,并将其与一个距离变量进行比较,然后确定用户是否移动得足够远并报告它,如果是的话。

+0

看看这里[这里](http://stackoverflow.com/questions/6104143/iphone-cllocationmanager-updates-every-0-5-seconds) – the1pawan

+0

非常感谢你。我想知道他们为什么说你不能告诉它什么时候把你的位置告诉你。我将分钟设置为一分钟,并且每次都得到它。 – SeeleyBoothe

+0

他说这取决于轻松找到WiFi信号和GPS信号......你可以看到由Dachmt发表的评论,他每秒收到更新 – the1pawan

回答

0

获取位置取决于查找WiFi信号和GPS信号的难易程度。无论你设置1分钟还是1秒,如果没有信号。看这里的评论Here

0

你正在遵循一个错误的方法来做到这一点。您需要使用Apple提供的Delegates来实现它。 你在做什么,是完全错误的,为什么你想在5秒后检查位置,如果它没有从最后的位置改变。

的解决问题的办法:

您需要设置的准确性根据您的要求:

kCLLocationAccuracyBestForNavigation 
kCLLocationAccuracyBest 
kCLLocationAccuracyNearestTenMeters 
kCLLocationAccuracyHundredMeters 
kCLLocationAccuracyKilometer 
kCLLocationAccuracyThreeKilometers 

您将获得委托方法调用,每当有特定的变化地点:

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

这将节省电池以及提高性能,因为它会节省不必要的电话一次又一次得到位置。