替换CLLocationManager的"目的"属性

Gui*_*ume 43 cocoa-touch deprecated cllocationmanager ios ios6

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

如果有的话,Apple会提出什么替代品?

小智 62

purpose在iOS 6中替换属性是一个名为NSLocationUsageDescription(也称为"隐私 - 位置使用描述")的新Info.plist密钥.

密钥记录在信息属性列表密钥参考中,但遗憾的是,该purpose属性的弃用说明未提及.

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

* 已过时.使用密钥NSLocationUsageDescription在Info.plist中设置目的字符串.

在您的代码中,您可以设置密钥和purpose属性(但是如果/当将来实际删除该方法时,您可能想要检查位置管理器是否首先响应该选择器).

如果在iOS 6下运行,位置管理器将使用该密钥.
在低于iOS 6的情况下运行时,将忽略该键并使用该purpose属性.

  • 你究竟如何本地化这个字符串呢?或者你是否只是为了这个目的需要一个本地化的infoplist.strings?(没有双关语) (6认同)