ios - didUpdateLocations 未被调用

标签 ios objective-c xcode swift cllocationmanager

我将我的对象设置为 locationManager 的委托(delegate),并调用了 didChangeAuthorizationStatus 方法,它执行以下操作:

func locationManager(manager: CLLocationManager!, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
    if status == CLAuthorizationStatus.AuthorizedWhenInUse {
        self.locationManager.startUpdatingLocation()
    }
}

我也有这个方法,它永远不会被调用:

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
    if locations.count == 0 {
        return
    }

    //Do stuff
}

关于为什么不调用它有什么想法吗?我想被释放的对象是一个选项,但它也会在它到达 authorizationStatus 方法时被释放。

最佳答案

这太晚了,但当我遇到同样的问题时,我偶然发现了这个问题(调用了 didChangeAuthorizationStatus 而不是 didUpdateLocations )。当然,这与代码无关,而是我在没有设置位置的模拟器中进行测试。因此从未找到该位置,导致 didUpdateLocations永远不会被调用。

要解决此问题...在模拟器中转至 Debug -> Location-> <choose location> .

编辑 还应该注意的是 locationManager:didFailWithError:如您所料,如果模拟器中未设置位置,则会运行。

关于ios - didUpdateLocations 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26178483/

相关文章:

ios - Iphone,获取 NSArray 中的国家/地区列表

objective-c - 如何用三角形弹出覆盖来呈现 UIView?

ios - 在 UISearchController 下添加水平滚动过滤器选项

objective-c - 从 IB、XCode 中的多个按钮创建对象数组

xcode - 在 Xcode 7 中重构图像?

ios - Swift - UIAlertcontroller 中文本字段的大小

ios - 当点击按钮或文本字段时, View 中的对象会消失

ios - 如果它是 subview Controller ,如何将 AppDelegate 中的 managedObjectContext 传递给正确的 View Controller ?

ios - 我希望状态栏在全屏视频播放期间可见

ios - 将对象保存到应用程序,IOS