gpt4 book ai didi

ios - 检查定位服务是否开启

转载 作者:IT王子 更新时间:2023-10-29 04:57:55 24 4
gpt4 key购买 nike

我一直在研究 CoreLocation。最近,我遇到了一个已在其他地方解决过的问题,但在 Objective C 和 iOS 8 中。

我觉得问这个问题有点傻,但是你如何检查是否在 iOS 9 上使用 swift 启用了定位服务?

在 iOS 7(也许是 8?)上,您可以使用 locationServicesEnabled(),但在为 iOS 9 编译时似乎不起作用。

那么我该如何实现呢?

谢谢!

最佳答案

CLLocationManagerDelegate 添加到您的类继承中,然后您可以进行以下检查:

导入 CoreLocation 框架

import CoreLocation

Swift 1.x - 2.x 版本:

if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .NotDetermined, .Restricted, .Denied:
print("No access")
case .AuthorizedAlways, .AuthorizedWhenInUse:
print("Access")
}
} else {
print("Location services are not enabled")
}

Swift 4.x 版本:

if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
}
} else {
print("Location services are not enabled")
}

swift 5.1版本

if CLLocationManager.locationServicesEnabled() {
switch CLLocationManager.authorizationStatus() {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
@unknown default:
break
}
} else {
print("Location services are not enabled")
}

iOS 14.x

在 iOS 14 中,您将收到以下错误消息: authorizationStatus() 在 iOS 14.0 中被弃用

要解决此问题,请使用以下内容:
private let locationManager = CLLocationManager()

if CLLocationManager.locationServicesEnabled() {
switch locationManager.authorizationStatus {
case .notDetermined, .restricted, .denied:
print("No access")
case .authorizedAlways, .authorizedWhenInUse:
print("Access")
@unknown default:
break
}
} else {
print("Location services are not enabled")
}

关于ios - 检查定位服务是否开启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34861941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com