在 iOS 11 和 Xcode 9.1 中未调用 CLLocationManager 的 didUpdateLocations 委托 [重复]

Posted

技术标签:

【中文标题】在 iOS 11 和 Xcode 9.1 中未调用 CLLocationManager 的 didUpdateLocations 委托 [重复]【英文标题】:didUpdateLocations delegate of CLLocationManager is not called in iOS 11 and Xcode 9.1 [duplicate] 【发布时间】:2017-12-20 10:51:32 【问题描述】:

您好必须获取设备当前位置,为此我正在使用 CLLocationManager 类,但没有调用 didUpdateLocations。

我是

我的代码和plist如下:

【问题讨论】:

locationManger?.delegate = self 设置在 viewDidLoad 中? @InderKumarRathore 是的,但是当我在 viewWillAppear 中设置委托时仍然无法正常工作。 您是否向用户请求了位置信息? locationManager.requestWhenInUseAuthorization()locationManager.requestAlwaysAuthorization() 尝试实现 didFailWithError 方法以确保它没有失败 【参考方案1】:
<key>NSLocationAlwaysUsageDescription</key>
    <string>Requires GPS to track persons</string>
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>Requires GPS to track persons</string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>Requires GPS to track persons</string>
    <key>UIBackgroundModes</key>
    <array>
        <string>fetch</string>
        <string>location</string>
    </array>

在 viewdidLoad 中添加这个

locationManager.delegate = self
   self.locationManager.allowsBackgroundLocationUpdates = true
   self.locationManager.startUpdatingLocation()

【讨论】:

我使用了这个代码。但还是不行。 @ajeetsharma 删除应用并再次运行 谢谢!!它的工作:D(y)

以上是关于在 iOS 11 和 Xcode 9.1 中未调用 CLLocationManager 的 didUpdateLocations 委托 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将设备更新到 iOS 11.2 会中断对 Xcode 9.1 的支持

Xcode 版本 9.1 (9B55) 上传存档失败 - iOS 11.1 - 应用程序必须使用公共 (GM) 版本构建

无法将 ios 9.1 设​​备连接到 xcode 7.1

在 iOS 15 中未分配 Alamofire 4.9.1 sessionManager.delegate.sessionDidReceiveChallenge

uiView 在 iOS10 的 ViewController 中未对齐,但不是 iOS11

iOS 11 中未调用用户当前位置委托方法