weak 属性修饰会报错。
‘weak’ must not be applied to non-class-bound ‘YJReaderRecommendOneBookViewProtocal’; consider adding a protocol conformance that has a class bound
weak与弱引用计数有关,只能修饰对象,不能修饰协议限制的any。
3个解决方案:
protocol YJReaderRecommendOneBookViewProtocal: NSObjectProtocol {
func testProtocal1()
}
class TestVC: UIViewController {
weak var delegate: YJReaderRecommendOneBookViewProtocal?
}
protocol YJReaderRecommendOneBookViewProtocal: class {
func testProtocal1()
}
class TestVC: UIViewController {
weak var delegate: YJReaderRecommendOneBookViewProtocal?
}
@objc protocol YJReaderRecommendOneBookViewProtocal {
func testProtocal1()
}
class MyViewController: UIViewController {
weak var delegate: YJReaderRecommendOneBookViewProtocal?
}
本文探讨了在Swift中使用weak修饰符与协议的限制及解决方法。weak不能用于非类绑定的协议,需确保协议声明包含class关键字。通过正确设置,可以避免编译错误并实现预期的弱引用行为。

1531

被折叠的 条评论
为什么被折叠?



