错误桥接Obj-C代码和Swift:方法“Z”提供的方法“U”与协议“Y”中的可选需求方法“X”冲突

时间:2015-06-20 03:30:20

标签: ios objective-c swift pbjvision

目标是将用于捕捉照片和视频的Objective-C库PBJVision合并到Swift应用程序中。

不幸的是,我们看到了这个错误:

  

Objective-C方法'愿景:captureVideo:错误:'由方法'提供'vision(:capturedVideo:error :)'与协议'PBJVisionDelegate'中的可选需求方法'vision(:capturedVideo:error :)'冲突

这是触发错误的委托方法:

func vision(vision: PBJVision, capturedVideo: NSDictionary, error: NSError) {
    println("Encountered error during recording \(error)")
    println("Captured video")
}

似乎问题是patched a while ago,但我们使用的是新版本(即,已提及的更改已包含在内)并仍然看到错误。

为什么会发生这种情况,我们如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

这只是将Objective-C翻译成Swift的问题。 Objective-C声明如下所示:

- (void)vision:(PBJVision *)vision capturedPhoto:(nullable NSDictionary *)photoDict error:(nullable NSError *)error;

因此,要匹配它,您的声明应如下所示:

func vision(vision: PBJVision, capturedVideo videoDict: [NSObject : AnyObject]?, error: NSError?) {
    // ...
}