首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift: Objective方法冲突(试图更改calloutview时出错)

Swift: Objective方法冲突(试图更改calloutview时出错)
EN

Stack Overflow用户
提问于 2015-05-11 10:02:13
回答 1查看 326关注 0票数 0

我正试图改变别针的标注视图。我使用一个包含标签和图像的.xib,它应该在用户点击注释时出现。

我使用以下代码:

代码语言:javascript
复制
func mapView(mapView: MKMapView!, didSelectAnnotationView annotation: MKAnnotationView!) -> UIView!
    {
        println("delegate")
        let pin = annotation as! CustomPointAnnotation

    if let infoView = UIView.viewFromNibName("AnnInfoView") as? AnnInfoView {
        infoView.nameLabel.text = pin.title

        if let photo = pin.imageName {
            infoView.placePhoto.image = UIImage(named: photo)
        } else {
            infoView.placePhoto.image = UIImage(named: "generic")
        }

        return infoView
    } else {
        return nil
    }
}

问题是,我得到了这个错误:

目标-C方法'mapView:didSelectAnnotationView:‘by 'mapView(:didSelectAnnotationView:)’与协议'MKMapViewDelegate‘中的可选需求方法'mapView(:didSelectAnnotationView:)’冲突。

却找不到解决办法。

我使用了一个目标-C库:https://github.com/RVLVR/REVClusterMap,它对注释进行集群。

我在这个库的一个文件中发现了这种方法:

代码语言:javascript
复制
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    if( [delegate respondsToSelector:@selector(mapView:didSelectAnnotationView:)] )
    {
        [delegate mapView:mapView didSelectAnnotationView:view];
    }
}

但是,即使我评论,错误仍然不会消失:

我做错了什么?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-05-11 10:21:02

委托方法didSelectAnnotationView of MKMapViewDelegate没有返回值。更改这一行

代码语言:javascript
复制
func mapView(mapView: MKMapView!, didSelectAnnotationView annotation: MKAnnotationView!) -> UIView!

代码语言:javascript
复制
func mapView(mapView: MKMapView!, didSelectAnnotationView annotation: MKAnnotationView!)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30164728

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档