在 iOS 6purpose
中,用于描述使用位置服务 ( @property(copy, nonatomic) NSString *purpose
) 原因的 CLLocationManager 属性已被弃用。
Apple 提出了哪些替代方案(如果有)?
在 iOS 6purpose
中,用于描述使用位置服务 ( @property(copy, nonatomic) NSString *purpose
) 原因的 CLLocationManager 属性已被弃用。
Apple 提出了哪些替代方案(如果有)?
iOS 6 中该属性的替换purpose
是一个名为NSLocationUsageDescription
(又名“隐私 - 位置使用说明”)的新 Info.plist 键。
该密钥记录在信息属性列表密钥参考中,但不幸的是,该purpose
属性的弃用说明中没有提到它。
但是,CLLocationManager.h
确实有这样的评论:
*
已弃用。使用键 NSLocationUsageDescription 在 Info.plist 中设置目的字符串。
在您的代码中,您可以同时设置键和purpose
属性(但您可能需要检查位置管理器是否首先响应该选择器,如果/当该方法在未来被实际删除时)。
如果在 iOS 6 下运行,位置管理器将使用密钥。
在低于 iOS 6 下运行时,将忽略密钥并使用purpose
属性。
我刚刚在我的应用程序中遇到了同样的问题。
我发现你现在可以设置Activity的CLLocationManager!
你可以选择不同的CLActivityTypes,这样你就不需要再写你自己的目的了。
这是基于导航的应用程序的示例
[self.gps setActivityType:CLActivityTypeAutomotiveNavigation];
其他可能的 CLActivityTypes 是:
- CLActivityTypeFitness
- CLActivityTypeOther
- CLActivityTypeOtherNavigation