3

为了确定用户的位置,我使用 CoreLocation 框架(我目前正在开发一个 OSX 应用程序(位置由 wifi 确定),但我的问题也可能适用于 iOS 应用程序)和以下委托方法:

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

当由于某种原因无法找到用户位置时(例如,如果用户的计算机没有连接到互联网),则调用以下方法:

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

在这种情况下,我想获取最后一个已知的用户位置。我想知道是否有办法获得这个最后一个已知位置。某处是否有一系列以前确定的位置?

4

1 回答 1

0

请参考官方文档:

http://developer.apple.com/library/ios/ipad/#documentation/CoreLocation/Reference/CLLocation_Class/CLLocation/CLLocation.html#//apple_ref/doc/c_ref/CLLocation

据此,

@property(readonly, nonatomic) CLLocation *location

如果从未检索到任何位置数据,则此属性的值为 nil。在 iOS 4.0 及更高版本中,此属性可能在启动时包含更新的位置对象。具体来说,如果正在运行重要的位置更新并且您的应用程序已终止,则此属性会在您的应用程序重新启动时使用最新的位置数据进行更新(并且您创建一个新的位置管理器对象)。此位置数据可能比您的应用程序处理的最后一个位置事件更新。

所以这是获得最后一个已知位置的唯一方法。如果它不为零,则可以使用它!

于 2012-12-29T17:54:38.537 回答