Swift3。我想知道如何将UICollectionViewDelegate
确定为弱属性。
如果你检查swift'标题'您会看到它继承自UIScrollViewDelegate
,NSObjectProtocol
继承自class
,但未标记为weak
- 仅限协议。
如果我尝试将自己的协议与委托模式一起用作'weak' may only be applied to class and class-bound protocol types
'委托'属性我得到编译时错误class
。
虽然我理解为什么编译器强迫我使用UICollectionViewDelegate
,但我想知道class
如何能够逃脱这一点。我猜weak
是某种语法糖,但如果你能解释我,我将不胜感激。
旁注:是否存在一种模式来处理我真正需要一种可以被价值和参考类型采用的协议的情况,但也很容易"从内存的角度来管理(意思是gem install rubygems-bundler
gem regenerate_binstubs
引用)。
我很抱歉有点模糊的问题。
答案 0 :(得分:2)
在class
定义中使用protocol
关键字时,您会说“此协议仅适用于类,而不适用于Swift结构或枚举。”
当一个对象继承或是一个Objective-C类或协议时,它的定义不是Swift结构或枚举。所以它不需要指定。