0

在 iOS 5 中,委托方法是

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

在 iOS 6 中的方法是

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations

我的应用程序支持这两个版本。CLLocation 管理如何知道它应该调用哪个方法?我需要添加一些 #if def 吗?如果是的话,谁能告诉我我该怎么写这个。提前致谢。

4

1 回答 1

1

您可以使用

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

您可以使用 iOS 6 SDK 构建并将部署目标设置为也支持 iOS 5。如果它不起作用,您可以尝试实现此方法并- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 在其中调用(您也可以实现此 iOS 6 方法,以便在 iOS 6 的情况下直接调用此方法)。您可以从 newLocation 和 oldLocation 创建一个数组并传递给它。但我不认为这将是必要的。您可以在两种设备上进行测试。

于 2012-11-27T19:55:27.453 回答