iPhone - 位置服务,最后可用的位置?

时间:2014-02-16 10:33:06

标签: ios iphone geolocation location

对于Android手机,您可以检索最后一个可用的位置点,无论您当前的位置服务是否打开,这非常有用,因为您可以在最新位置之前根据该位置进行猜测。可用。

我怎么能为iPhone做到这一点?假设当我尝试访问iOS位置服务时,用户已经走到室内。因此,无法获得最新的位置。我可以在上次用户暴露在天空下时检索位置吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

我不知道是否有可以直接使用的开箱即用方法。但在我的应用程序中,我使用了一个解决方案。我只是将最近的用户位置保存到NSUserDefault中,如此

- (void)setLastSavedLocation:(CLLocation *)location
{
    [[NSUserDefaults standardUserDefaults] setDouble:location.coordinate.latitude forKey:@"kLocationManagerLatKey"];
    [[NSUserDefaults standardUserDefaults] setDouble:location.coordinate.longitude forKey:@"kLocationManagerLngKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

我会称之为获取数据:

- (CLLocation *)lastSavedLocation
{
    if (![[NSUserDefaults standardUserDefaults] objectForKey:@"kLocationManagerLatKey"]) return nil;
    return [[CLLocation alloc] initWithLatitude:[[NSUserDefaults standardUserDefaults] doubleForKey:@"kLocationManagerLatKey"]
                                      longitude:[[NSUserDefaults standardUserDefaults] doubleForKey:@"kLocationManagerLngKey"]];
}

希望能给你一些解决这个问题的想法。