我正在使用Xcode和swift 3为我开发项目。我想做的就像下面一样。
class SCViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate{
//code here
}
但是这给我一个错误, SCViewController 不符合协议 NSObjectProtocol 。
我想要符合UIViewController和AVCaptureMetadataOutputObjectsDelegate。请帮我解决这个问题。
答案 0 :(得分:1)
见:
您需要实现协议功能才能符合该协议。没有它,协议一致性是没用的,你不觉得吗? :)无论如何,通过扩展协议扩展类总是更好,如下所示:
extension SCViewController: AVCaptureMetadataOutputObjectsDelegate{
//code here
}
无论如何更广泛的描述:正如你所看到的,代理实现为“superProtocol”NSObjectProtocol,
看到这个:
https://developer.apple.com/documentation/avfoundation/avcapturemetadataoutputobjectsdelegate
所以只需实现NSObjectProtocol函数,你就可以了......快乐编码:)
编辑:在意识到我是一个完全白痴并忘记基本的事情之后 - >这应该工作,因为UIViewController类是UIResponder的子类,它是NSObject的子类,因此类名或类似的东西可能有问题......会试图强迫编译器做一些奇怪的事情它会做什么。像这样:
extension SCViewController: NSObject, AVCaptureMetadataOutputObjectsDelegate{
//code here
}
顺便说一句,这绝对有用。