如何在’pure’Swift中创建弱协议引用(w/o @objc)
发布时间:2020-12-14 06:25:57 所属栏目:百科 来源:网络整理
导读:弱引用似乎不工作在Swift除非协议被声明为@objc,我不想在纯Swift应用程序。 这个代码给出一个编译错误(weak不能应用于非类类型MyClassDelegate): class MyClass { weak var delegate: MyClassDelegate?}protocol MyClassDelegate {} 我需要用@objc作为协议
弱引用似乎不工作在Swift除非协议被声明为@objc,我不想在纯Swift应用程序。
这个代码给出一个编译错误(weak不能应用于非类类型MyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } 我需要用@objc作为协议的前缀,然后它工作。 问题:什么是“纯粹的”Swift的方式来完成一个弱委托?
您需要将协议的类型声明为类。
protocol ProtocolNameDelegate: class { // Protocol stuff goes here } class SomeClass { weak var delegate: ProtocolNameDelegate? } 我的理解是,使用类,你保证这个协议将只使用类,没有其他的东西,如枚举或结构。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |