【问题标题】:How can CLLocationManager call correct delegate methods depending on iOS versionCLLocationManager 如何根据 iOS 版本调用正确的委托方法
【发布时间】:2012-11-27 14:25:52
【问题描述】:

在 iOS 5 中,委托方法是

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

在 iOS 6 中的方法是

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

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

【问题讨论】:

    标签: ios5 ios6 cllocationmanager


    【解决方案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 创建一个数组并传递给它。但我不认为这将是必要的。您可以在两种设备上进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-18
      • 2013-12-03
      • 2011-03-12
      • 2014-09-20
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      相关资源
      最近更新 更多