ios - guide - 替換CLLocationManager的“目的”屬性




xcode document (2)

在iOS 6中替換purpose屬性是一個名為NSLocationUsageDescription的新Info.plist密鑰(又名“隱私 - 位置使用說明”)。

密鑰記錄在信息屬性列表密鑰參考中,但遺憾的是, purpose屬性的棄用說明未提及。

但是, CLLocationManager.h確實有這樣的評論:

*已棄用。 使用密鑰NSLocationUsageDescription在Info.plist中設置目的字符串。

在您的代碼中,您可以設置密鑰和purpose屬性(但是如果/當將來實際刪除該方法時,您可能想要檢查位置管理器是否首先響應該選擇器)。

如果在iOS 6下運行,位置管理器將使用該密鑰。
在低於iOS 6的情況下運行時,將忽略該鍵並使用purpose屬性。

在iOS 6中,不推薦使用CLLocationManager的purpose屬性來描述使用位置服務的原因( @property(copy, nonatomic) NSString *purpose )。

如果有的話,Apple會提出什麼替代品?


我在我的應用程序中遇到了同樣的問題。

我發現你現在可以設置CLLocationManager!的Activity了CLLocationManager! 您可以選擇不同的CLActivityTypes,因此您不再需要編寫自己的目的。

這是例如基於導航的應用程序

[self.gps setActivityType:CLActivityTypeAutomotiveNavigation];

其他可能的CLActivityTypes是:

 - CLActivityTypeFitness
 - CLActivityTypeOther
 - CLActivityTypeOtherNavigation




deprecated