gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 11:23:55 30 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/50965046/

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