我已有一个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;

我创建了一个桥接文件,并从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”,以便委托人能够识别它吗?

最佳答案

看来AKViewDelegateAKViewDataSource的子类,在这种情况下,您将必须符合AKViewDelegateAKViewDataSource,这意味着您将必须实现两种协议所需的方法。

关于ios - SWIFT:尝试使用 objective-c 类的委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27711163/

10-13 03:24