ios - 替换 CLLocationManager 的 "purpose"属性

标签 ios cocoa-touch ios6 cllocationmanager deprecated

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

Apple 提出了什么替代方案(如果有的话)?

最佳答案

iOS 6 中 purpose 属性的替换是一个名为 NSLocationUsageDescription(又名“隐私 - 位置使用说明”)的新 Info.plist 键。

关键是documented in the Information Property List Key Reference但不幸的是,它没有在 purpose 属性的弃用说明中提及。

但是,CLLocationManager.h 确实有这样的注释:

* Deprecated. Set the purpose string in Info.plist using key NSLocationUsageDescription.

在您的代码中,您可以同时设置键和 purpose 属性(但是如果/当该方法在未来)。

如果在 iOS 6 下运行,位置管理器将使用 key 。
在低于 iOS 6 的系统下运行时,该键将被忽略并使用 purpose 属性。

关于ios - 替换 CLLocationManager 的 "purpose"属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562152/

相关文章:

ios - 为什么我的模态呈现(表单)navController 的 rootViewController 没有意识到它在模态呈现时的尺寸较小?

objective-c - 双 UIScrollView 同步 - 不同高度

ios - iOS Objective-C 中的 URL 构建有哪些 native 类?

ios - 在 xcode 中开发全屏 4 英寸应用程序

ios - 在 iPad Mini iOS 7 中使用 UIImagePickerController

iphone - 如何检测用户是否在浏览器中安装了 iOS 应用程序 - 如帖子中的示例站点

android - 如何在 iphone 中使用 PKCS5padding 和 AES128

ios - PLCrashReporter ios6 崩溃

ios - 如何删除 ios .app 包中的额外链接图像

ios - 设备界面方向