我对核心位置有一个奇怪的问题,这个问题刚开始发生在我使用Xcode 10.1的Swift 4.2项目中:
现在,编译器将拒绝CLLocationManagerDelegate
的以下方法实现:
func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
//code
}
我遇到以下错误:
'locationManager(:didUpdateLocations :)'已重命名为 'locationManager(:didUpdate:)'
但是,最新的Apple文档未记录此更改,更新参数名称会导致出现以下警告,这似乎表明它是Xcode错误:
实例方法'locationManager(:didUpdate :)'几乎匹配 的可选要求'locationManager(:didUpdateLocations :) 协议“ CLLocationManagerDelegate”。 重命名为“ locationManager(_:didUpdateLocations :)”以满足此要求
此外,这仅在构建Simulator设备时发生。为运行早期iOS版本(11.4.2)的iPhone进行构建时,没有出现此错误。
更改参数名称仅适用于模拟器(即调用该方法),但不适用于我的设备。因此,现在我所在的位置是每次从Simulator迁移到设备时都需要更新代码,反之亦然。
任何有关如何摆脱这个问题的建议,将不胜感激!