除非 protocol
被声明为 @objc
,否则 weak
引用在 Swift 中似乎不起作用,我不希望在一个纯 Swift 应用程序中使用 @objc
。
这段代码提供了一个编译错误(weak
不能应用于非类类型 MyClassDelegate
) :
class MyClass {
weak var delegate: MyClassDelegate?
}
protocol MyClassDelegate {
}
我需要给协议加上 @objc
的前缀,然后它就可以工作了。
问: 完成 weak
delegate
的“纯”Swift 方法是什么?