我已有一个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
”,以便委托人能够识别它吗? 最佳答案
看来AKViewDelegate
是AKViewDataSource
的子类,在这种情况下,您将必须符合AKViewDelegate
和AKViewDataSource
,这意味着您将必须实现两种协议所需的方法。
关于ios - SWIFT:尝试使用 objective-c 类的委托(delegate)方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27711163/