核心位置在模拟器 Xcode 9.4.1 中不起作用

Posted

技术标签:

【中文标题】核心位置在模拟器 Xcode 9.4.1 中不起作用【英文标题】:Core Location not working in simulator Xcode 9.4.1 【发布时间】:2018-08-29 22:57:30 【问题描述】:

我有以下代码:

import CoreLocation

class ViewController: UIViewController, NetworkingDelegate, CLLocationManagerDelegate 
    let locationManager: CLLocationManager = CLLocationManager()

然后:

 locationManager.delegate = self
 locationManager.desiredAccuracy = kCLLocationAccuracyBest
 locationManager.requestWhenInUseAuthorization()
 locationManager.startUpdatingLocation()

然后我在 VC 中实现委托方法

func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) 

        for currentLocation in locations
            print("\(index)\(currentLocation)")
        
        print("Did Location Delegate get called?")
        let location: CLLocation = locations.first as! CLLocation
        print(location)
        self.lat = String(format: "%f", location.coordinate.latitude)
        self.long = String(format: "%f", location.coordinate.longitude)
        

在构建阶段,“Link Binary With Libraries”选择了 CoreLocation.framework。

存在 plist 中的正确隐私:隐私 - 位置使用说明与隐私 - 使用时的位置使用说明一样。

仍然没有得到位置。我在针对 ios 11 的 Xcode 9.4.1 中使用模拟器。我在这里缺少什么?

【问题讨论】:

您必须开启 LOC。在 XCODE 模拟器选项中!! 太烦人了。 ***.com/a/32887820/294884 【参考方案1】:

问题是func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) 已经过时多年了。更新现代 Swift 的代码。以下是声明的外观:

https://developer.apple.com/documentation/corelocation/cllocationmanagerdelegate/1423615-locationmanager

【讨论】:

以上是关于核心位置在模拟器 Xcode 9.4.1 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 5/iOS 7 - 本地化在模拟器中不起作用

自动布局在 iphone6 模拟器的 xcode 中不起作用

启用双长度伪语言在 Xcode 7.3 中不起作用

Swift 自动布局在 Xcode 9.3 中不起作用

自定义字体在 iOS 8 中不起作用

模拟位置在 Android Studio 模拟器中不起作用