replaceCLLocationManager的“目的”属性

在iOS 6中,用于描述使用位置服务( @property(copy, nonatomic) NSString *purpose )的原因的CLLocationManager的purpose属性已被弃用。

苹果公司提出了什么样的替代品?

在iOS 6中replacepurpose属性是一个名为NSLocationUsageDescription (aka“隐私 – 位置使用说明”)的新Info.plist键。

关键信息logging在信息财产清单关键参考中,但遗憾的是没有提及purpose财产的弃用票据。

但是, CLLocationManager.h确实有这样的评论:

*弃用。 使用密钥NSLocationUsageDescription在Info.plist中设置目标string。

在你的代码中,你可以同时设置键和purpose属性(但是你可能想要检查位置pipe理器是否/如果将来实际上删除了该方法时,是否首先响应该select器)。

如果在iOS 6下运行,位置pipe理器将使用密钥。
在低于iOS 6的情况下运行时,密钥将被忽略, purpose属性将被使用。

我的应用程序中只有相同的问题。

我发现你现在可以设置CLLocationManager!的Activity了CLLocationManager! 你可以select不同的CLActivityTypes,所以你不需要再写自己的目的。

例如,这是一个基于导航的应用程序

 [self.gps setActivityType:CLActivityTypeAutomotiveNavigation]; 

其他可能的CLActivityTypes是:

  - CLActivityTypeFitness - CLActivityTypeOther - CLActivityTypeOtherNavigation