在 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 15 中未分配 Alamofire 4.9.1 sessionManager.delegate.sessionDidReceiveChallenge