我正在用 Swift 编码,我想在我的应用程序中使用用户的位置。我已经添加NSLocationWhenInUseUsageDescription
并NSLocationAlwaysUsageDescription
正确Info.plist
配置了它们。我还添加了 CoreLocation.framework 并将其导入到 ViewController 中。我也在CLLocationManagerDelegate
我的类定义中使用。我已经实现了该方法didChangeAuthorizationStatus
,并且当用户选择允许将其位置提供给应用程序时,此方法有效。当发生这种情况时,我已将文本打印到控制台以确保。但是,当我在打印到控制台后立即从此方法调用该方法时didUpdateLocations
,该方法不会运行,并且没有任何新内容打印到控制台。我已确保在didUpdateLocations
方法中包含一个打印命令,以确保这一点。这是其中一种方法的代码:
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .AuthorizedWhenInUse {
print("permission granted")
locationManager.startUpdatingLocation()
} else {
print(status)
}
}
如您所见,在方法中,locationManager.startUpdatingLocation()
它被调用并且应该开始这样做。这是此方法的代码:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print(locations)
}
但是,一旦我在我的应用程序中询问我时按允许,除了在第一种方法中调用的“授予权限”之外,它不会向控制台打印任何内容。我该如何解决?任何帮助是极大的赞赏!
编辑:
好吧,实际上我只是通过在模拟器手机中模拟运动来解决问题。您只需单击“调试”,将鼠标悬停在“位置”上,然后选择一种移动方式!