SWIFT:尝试使用目标c类的委托方法

时间:2014-12-30 19:13:28

标签: ios objective-c swift delegates augmented-reality

我有一个Objective-C SDK (AugmentedKit SDK)。我正在尝试将其与Swift一起使用。 AugmentedKit SDK有一个名为“AKSurfaceView”的类,它实现了对“AKViewDataSource”协议的委托。

@class AKSurfaceView;
@protocol AKViewDataSource;

@protocol AKViewDelegate<AKViewDataSource>

AKViewDataSource看起来像这样:

@protocol AKViewDataSource<NSObject>
@required
-(AKMarkerTemplate*) viewforMarker:(AKMarker*) marker; 

我已经创建了一个briging文件,从AKSurfaceView等实现了其他方法 - 一切正常但是当我尝试将AKViewDelegate的引用添加到我的UIViewControllerClass时以编译错误结束:

“类型POIViewController不符合协议”AKViewDataSource

我的实现如下:

class POIViewController: UIViewController, AKViewDelegate {

我在SWIFT中对“viewforMarker”的实现如下所示:

func viewforMarker(marker:AKMarker) -> AKMarkerTemplate{
    var markerView:SimpleMarker = SimpleMarker(frame: CGRectMake(0, 0, 230, 80))
    markerView.title.text = marker.markerName
    return markerView
}

可以请任何人帮助我弄清楚我必须如何实施“viewforMarker”,以便代表认出来吗?

2 个答案:

答案 0 :(得分:1)

您的AKViewDelegate似乎是AKViewDataSource的子类,在这种情况下,您必须符合AKViewDelegateAKViewDataSource,这意味着您必须实现两种协议所需的方法。

答案 1 :(得分:0)

确保已在Bridging-Header.h内导入了Obective-C类,并在swift类中添加了以下内容:

markerView.delegate = self