Sal*_*Ali 2 xcode ios swift swift-protocols
我正在使用 Xcode 和 swift 3 为我开发一个项目。我想做的是如下。
class SCViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate{
//code here
}
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误SCViewController不符合协议NSObjectProtocol。
我想同时遵守 UIViewController 和 AVCaptureMetadataOutputObjectsDelegate。请帮助我解决这个问题。
看看这个:
您需要实现协议功能才能符合该协议。如果没有这个协议一致性就毫无用处,你不觉得吗?:) 无论如何,通过扩展中的协议来扩展类总是更好,如下所示:
extension SCViewController: AVCaptureMetadataOutputObjectsDelegate{
//code here
}
Run Code Online (Sandbox Code Playgroud)
更广泛的描述:如您所见,委托实现为“superProtocol”NSObjectProtocol,
看到这个:
https://developer.apple.com/documentation/avfoundation/avcapturemetadataoutputobjectsdelegate
所以只要实现 NSObjectProtocol 函数就可以了...快乐编码:)
编辑:在意识到我是一个彻底的白痴并忘记了基本的事情之后 - >这应该可以工作,因为 UIViewController 类是 UIResponder 的子类,而 UIResponder 是 NSObject 的子类,因此类名或类似的东西可能有问题......会尝试强迫编译器做奇怪的事情,它会做什么......像这样:
extension SCViewController: NSObject, AVCaptureMetadataOutputObjectsDelegate{
//code here
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,上面的这个绝对应该有效。
| 归档时间: |
|
| 查看次数: |
3815 次 |
| 最近记录: |