【发布时间】:2019-04-25 07:30:34
【问题描述】:
我已使用 CocoaPods 将库 MBDocCapture 添加到我的项目中。现在,正如它的自述文件所暗示的那样,我使我的视图控制器符合ImageScannerControllerDelegate 并将所有 4 种协议方法添加到我的代码中:
extension DocumentUploaderViewController: ImageScannerControllerDelegate {
func imageScannerController(_ scanner: ImageScannerController, didFinishScanningWithResults results: ImageScannerResults) {
scanner.dismiss(animated: true)
}
func imageScannerController(_ scanner: ImageScannerController, didFinishScanningWithPage1Results page1Results: ImageScannerResults, andPage2Results page2Results: ImageScannerResults) {
scanner.dismiss(animated: true)
}
func imageScannerControllerDidCancel(_ scanner: ImageScannerController) {
scanner.dismiss(animated: true)
}
func imageScannerController(_ scanner: ImageScannerController, didFailWithError error: Error) {
scanner.dismiss(animated: true)
}
}
现在,Xcode (10.2.1) 抱怨我仍然缺少一些协议存根:
类型“DocumentUploaderViewController”不符合协议“ImageScannerControllerDelegate”
是否要添加协议存根?
当我按下Fix 时,Xcode 添加了didFailWithError 方法:
func imageScannerController(_ scanner: ImageScannerController, didFailWithError error: Error) {
}
...然后抱怨我添加了对方法的无效重新声明(因为它已经存在!):
'imageScannerController(_:didFailWithError:)' 的重新声明无效
我已经试过了:
- 构建
- 清理派生数据
- 清理和构建
- 退出 Xcode,清理,构建
- 重启我的 Mac (10.14.3),打开 Xcode,清理,构建
这些尝试都没有帮助。
有什么想法吗?
【问题讨论】:
-
添加一些额外的代码。
-
@Anbu.Karthik 我应该发布哪些附加代码?我认为没有其他代码与此问题相关。
-
我认为它唯一的版本问题你能告诉我你正在使用的 MBDocCapture 的快速版本吗?和您项目的快速版本?
-
你也可以发布显示重新声明错误的功能吗?
-
@AbuUlHassan 我的项目使用 Swift 4。MBDocCapture 0.1.1 使用 Swift 4.2,但是,示例项目也使用 Swift 4。Xcode 尝试重新添加
didFailWithError方法,因此,添加后在该方法上抛出重新声明错误。