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

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

当由于某种原因找不到用户位置时(例如,如果用户的计算机未连接到Internet),则调用以下方法:
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error

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

最佳答案

请参考官方文档:

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及更高版本中,此属性可能包含
在启动时更新的位置对象。
具体来说,如果
重要位置更新正在运行,您的应用程序正在
终止,此属性将更新为最新位置
重新启动应用程序时的数据(并且您创建了一个新的
位置管理器对象)。此位置数据可能比
您的应用程序处理的最后一个位置事件。

因此,这是获得最后已知位置的唯一方法。
如果不是零,您可以使用它!

09-07 12:31
查看更多