gpt4 book ai didi

ios - 更新到 XCode 6.3 (Swift 1.2) 后出现 "Objective-C method conflicts with optional requirement method"错误

转载 作者:搜寻专家 更新时间:2023-10-30 22:13:07 25 4
gpt4 key购买 nike

我在我的应用程序中使用 Google Maps iOS SDK,直到今天一切都运行良好。我已经下载了 Xcode 6.3 并遇到了一些错误。整理了所有这些,除了我的 MapViewController 类中的两个错误,在这两个方法上弹出:

第一种方法:

func mapView(mapView: GMSMapView!, didTapMarker marker: ExtendedMarker!) -> Bool {
... some code ...
}

错误:

Objective-C method 'mapView:didTapMarker:' provided by method 'mapView(:didTapMarker:)' conflicts with optional requirement method 'mapView(:didTapMarker:)' in protocol 'GMSMapViewDelegate'

第二种方法:

func mapView(mapView: GMSMapView!, markerInfoContents marker: ExtendedMarker!) -> UIView! {
... some code ...
}

错误:

Objective-C method 'mapView:markerInfoContents:' provided by method 'mapView(:markerInfoContents:)' conflicts with optional requirement method 'mapView(:markerInfoContents:)' in protocol 'GMSMapViewDelegate'

我尝试重写这些方法,但没有帮助。我还检查了 Google Maps SDK 的更新,但最后一次更新是在 2015 年 2 月。

如有任何建议,我将不胜感激,在此先感谢您! :)

最佳答案

我会说你的问题是第二个参数的 ExtendedMarker 类型。通过采用该协议(protocol),您的类 promise ,如果它实现可选方法 mapView:didTapMarker:,则第二个参数可以是 GMSMarker 或其任何子类。

您的方法不满足接口(interface)契约,因为它只接受 ExtendedMarker 的实例 - 我假设它是 GMSMarker 的子类。

我会像这样定义方法。您需要准备好处理传入的非 ExtendedMarker 实例,因为契约(Contract)说您可能会得到它们。简单地尝试强制转换可能会导致异常。

func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool 
{
// Non specific ExtendedMarker processing

if let marker = marker as? ExtendedMarker
{
// ExtendedMarker specific processing
}
// More non specific ExtendedMarker processing
}

关于ios - 更新到 XCode 6.3 (Swift 1.2) 后出现 "Objective-C method conflicts with optional requirement method"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29611312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com