【发布时间】:2018-04-11 04:20:06
【问题描述】:
我正在尝试设置当我的应用请求位置授权时显示的字符串。我试过设置所有four possible keys in Info.plist:
NSLocationUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSLocationAlwaysAndWhenInUseUsageDescription
我也尝试设置locationManager.purpose 字符串which is deprecated in iOS, but not macOS。当应用请求授权时,这些方法都不会导致字符串出现在警报中。
我正在使用此代码请求访问:
var locationManager = CLLocationManager()
func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
switch status {
case .notDetermined:
locationManager.startUpdatingLocation()
locationManager.stopUpdatingLocation()
default: break
}
}
这是警报的屏幕截图:
Calendar.app 可以自定义提醒:
【问题讨论】:
-
您看到警报了吗?有什么讯息?您是否偶然丢失了对 locationManager 的引用?
-
是的,警报按预期显示。只是没有使用说明字符串。它说“‘app’想要访问你的位置。”
locationManager设置在班级级别,所以我认为这不会丢失。
标签: macos core-location info.plist location-services