迅速。 UIKit中委托模式的协议。 NSObjectProtocol

时间:2017-03-27 17:17:42

标签: swift swift-protocols

Swift3。我想知道如何将UICollectionViewDelegate确定为弱属性。

如果你检查swift'标题'您会看到它继承自UIScrollViewDelegateNSObjectProtocol继承自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 引用)。

我很抱歉有点模糊的问题。

1 个答案:

答案 0 :(得分:2)

class定义中使用protocol关键字时,您会说“此协议仅适用于类,而不适用于Swift结构或枚举。”

当一个对象继承或是一个Objective-C类或协议时,它的定义不是Swift结构或枚举。所以它不需要指定。