gpt4 book ai didi

ios - 为什么我的 Controller 不符合 NSObjectProtocol?

转载 作者:行者123 更新时间:2023-11-28 06:18:14 26 4
gpt4 key购买 nike

我正在使用 Xcode 和 swift 3 为我开发一个项目。我正在尝试做的是如下所示。

class SCViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate{
//code here
}

但这给了我一个错误,即 SCViewController 不符合协议(protocol) NSObjectProtocol

我想同时符合 UIViewController 和 AVCaptureMetadataOutputObjectsDelegate。请帮我解决这个问题。

最佳答案

看这个:

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html

您需要实现协议(protocol)功能以符合该协议(protocol)。没有它,协议(protocol)一致性就没有用了,你不觉得吗? :) 无论如何,通过扩展中的协议(protocol)扩展类总是更好,如下所示:

extension SCViewController: AVCaptureMetadataOutputObjectsDelegate{
//code here
}

无论如何更广泛的描述:如您所见,委托(delegate)实现为“superProtocol”NSObjectProtocol,

看这个:

https://developer.apple.com/documentation/avfoundation/avcapturemetadataoutputobjectsdelegate

所以只需实现 NSObjectProtocol 函数,你就可以了......快乐的编码:)

编辑:在意识到我是个彻头彻尾的白痴并忘记了基本的事情之后 -> 这应该可行,因为 UIViewController 类是 UIResponder 的子类,而 UIResponder 是 NSObject 的子类,因此类名或类似名称可能有问题...会尝试强制编译器做它会做的奇怪事情...像这样:

extension SCViewController: NSObject, AVCaptureMetadataOutputObjectsDelegate{
//code here
}

顺便说一句,上面的内容绝对有效。

关于ios - 为什么我的 Controller 不符合 NSObjectProtocol?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44470118/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com