'locationManager(_:didUpdateLocations :)'的参数具有与协议'CLLocationManagerDelegate'

时间:2016-01-12 15:30:56

标签: ios xcode swift cllocationmanager optional-parameters

我在viewcontroller中实现了 CLLocationManagerDelegate ,我收到以下警告

  

'locationManager(_:didUpdateLocations :)'的参数有所不同   协议'CLLocationManagerDelegate'

预期的可选性      

'locationManager(_:didFailWithError :)'的参数有所不同   协议'CLLocationManagerDelegate'

预期的可选性      

'locationManager(_:didChangeAuthorizationStatus :)'的参数有   与协议预期的不同选择性   'CLLocationManagerDelegate'

据我所知 “ 参数的可选性(变量是否可选)与原始协议方法定义中的不同

但是我找不到原件和我之间的任何区别。

这是

在协议定义中

optional public func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation])

optional public func locationManager(manager: CLLocationManager, didFailWithError error: NSError)

optional public func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus)

在我的协议实施中

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

func locationManager(manager: CLLocationManager,
        didFailWithError error: NSError)

func locationManager(manager: CLLocationManager,
        didChangeAuthorizationStatus status: CLAuthorizationStatus)

我的xcode版本是7.1.1

那么有人可以解释为什么会出现这些警告吗?

1 个答案:

答案 0 :(得分:1)

重新启动xcode解决了这个问题...有时候事情很奇怪