查看 statUpdatingLocation 在 Swift 中是否处于活动状态
Find out if statUpdatingLocation is active in Swift
我在 swift 中有一个基于位置的应用程序 运行。我正在尝试检测 self.locationManager.startUpdatingLocation()
当前是否处于活动状态。
我正在努力寻找如何执行此操作,也无法在 Internet 上找到很多相关信息。我相当确定这很容易实现。我不想设置 BOOL,因为这需要是全局的。
if CLLocationManager.locationServicesEnabled() && /* START UPDATE LOCATION GOES HERE */ {
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestAlwaysAuthorization()
self.locationManager.startUpdatingLocation()
//self.locationManager.startMonitoringSignificantLocationChanges()
sender.setTitle("END DAY", forState: UIControlState.Normal)
} else {
}
你无法不知道startUpdatingLocation()
是否是"active",因为是你说的。
如果您需要从其他地方跟踪它,请创建一个 Bool 属性 并在您调用 startUpdatingLocation()
时将其设置为 true
并在您调用 false
时将其设置为 false
呼叫 stopUpdatingLocation()
.
我知道这是一个迟到的答案。但如果您想知道 locationManager 是否正在更新,这可能是一种解决方案。
您的应用中应该只有一个 CLLocationManager
实例。所以创建一个单例是理想的。然后,您应该覆盖方法 startUpdatingLocation
和 stopUpdatingLocation
.
(Swift 3)
import CoreLocation
class LocationManager: CLLocationManager {
var isUpdatingLocation = false
static let shared = LocationManager()
override func startUpdatingLocation() {
super.startUpdatingLocation()
isUpdatingLocation = true
}
override func stopUpdatingLocation() {
super.stopUpdatingLocation()
isUpdatingLocation = false
}
}
用法:
if LocationManager.shared.isUpdatingLocation {
print("Is currently updating location.")
} else {
print("Location updates have stopped.")
}
我在 swift 中有一个基于位置的应用程序 运行。我正在尝试检测 self.locationManager.startUpdatingLocation()
当前是否处于活动状态。
我正在努力寻找如何执行此操作,也无法在 Internet 上找到很多相关信息。我相当确定这很容易实现。我不想设置 BOOL,因为这需要是全局的。
if CLLocationManager.locationServicesEnabled() && /* START UPDATE LOCATION GOES HERE */ {
self.locationManager.delegate = self
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
self.locationManager.requestAlwaysAuthorization()
self.locationManager.startUpdatingLocation()
//self.locationManager.startMonitoringSignificantLocationChanges()
sender.setTitle("END DAY", forState: UIControlState.Normal)
} else {
}
你无法不知道startUpdatingLocation()
是否是"active",因为是你说的。
如果您需要从其他地方跟踪它,请创建一个 Bool 属性 并在您调用 startUpdatingLocation()
时将其设置为 true
并在您调用 false
时将其设置为 false
呼叫 stopUpdatingLocation()
.
我知道这是一个迟到的答案。但如果您想知道 locationManager 是否正在更新,这可能是一种解决方案。
您的应用中应该只有一个 CLLocationManager
实例。所以创建一个单例是理想的。然后,您应该覆盖方法 startUpdatingLocation
和 stopUpdatingLocation
.
(Swift 3)
import CoreLocation
class LocationManager: CLLocationManager {
var isUpdatingLocation = false
static let shared = LocationManager()
override func startUpdatingLocation() {
super.startUpdatingLocation()
isUpdatingLocation = true
}
override func stopUpdatingLocation() {
super.stopUpdatingLocation()
isUpdatingLocation = false
}
}
用法:
if LocationManager.shared.isUpdatingLocation {
print("Is currently updating location.")
} else {
print("Location updates have stopped.")
}