Swift - 如何使协议(protocol)既是类又需要采用某种类型

标签 swift swift-protocols

我正在尝试使用 Self == MyCustomClass 制作需要特定类型的协议(protocol)。但是这个协议(protocol)被用作委托(delegate)类型并且弱约束要求它也是具有 ProtocolName : class

的 class-only 协议(protocol)

我试过这样的

protocol MusicPlayerViewDelegate : class where Self == MusicPlayerController {
}

然后:

weak var delegate : MusicPlayerViewDelegate?

最佳答案

你的协议(protocol)需要扩展 NSObjectProtocol 才能使用 weak 。 您也可以尝试让 MusicPlayerController 扩展 NSObject,但我不确定它是否有效。

关于Swift - 如何使协议(protocol)既是类又需要采用某种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49147094/

相关文章:

ios - swift 协议(protocol) : Adding Protocol conformance to an Instance

swift - swift 中的类到协议(protocol)对话

ios - 将手势识别器添加到 SKShapeNode Swift 4

swift - 字符串类型的枚举与具有静态常量的结构

ios - 如何在 Swift 中缩放卡片时翻转卡片

属性符合协议(protocol)的 Swift 协议(protocol)扩展

Swift 协议(protocol)属性集未执行

swift - 如果无法加载 URL,则取消加载 View Controller - Swift 4

swift - 具有 2 个部分的表格 View ,单元格的设计不同

swift - 为什么这个通用的基于协议(protocol)的框架不能编译?