试图用 Swift 协议来理解一些东西
Trying to understand something with Swift protocols
我最近继承了一个用 Swift.
编写的完全没有文档记录的、意大利面条式的和极其错误的项目
我正在整理一些东西,并且在每一个协议声明中都遇到了这个问题:
protocol SomeProtocol: class { ...
字面上的 : class
- 这不是其他内容的占位符。
我的问题是:: class
实现或声明了什么?
个人从来没有把 : class
放在后面,我通常将其保留用于从其他协议继承。我删除了几个没有结果,但我想我应该在继续之前检查实际目的(如果有的话)。
此致,
弗兰基
: class
表示这个协议只能被class.
遵守
其中一个用例是委托。 delegate
属性通常声明为 weak
以避免循环保留。例如:
class MyCoolClass {
weak var delegate: MyCoolClassDelegate?
}
如果MyCoolClassDelegate
这样声明:
protocol MyCoolClassDelegate { }
那么结构也可以符合它。但是不能声明结构类型weak
!因此,出现这个错误:
'weak' may only be applied to class and class-bound protocol types, not 'MyCoolClassDelegate'
这就是为什么您需要将其声明为 : class
。
我最近继承了一个用 Swift.
编写的完全没有文档记录的、意大利面条式的和极其错误的项目我正在整理一些东西,并且在每一个协议声明中都遇到了这个问题:
protocol SomeProtocol: class { ...
字面上的 : class
- 这不是其他内容的占位符。
我的问题是:: class
实现或声明了什么?
个人从来没有把 : class
放在后面,我通常将其保留用于从其他协议继承。我删除了几个没有结果,但我想我应该在继续之前检查实际目的(如果有的话)。
此致,
弗兰基
: class
表示这个协议只能被class.
其中一个用例是委托。 delegate
属性通常声明为 weak
以避免循环保留。例如:
class MyCoolClass {
weak var delegate: MyCoolClassDelegate?
}
如果MyCoolClassDelegate
这样声明:
protocol MyCoolClassDelegate { }
那么结构也可以符合它。但是不能声明结构类型weak
!因此,出现这个错误:
'weak' may only be applied to class and class-bound protocol types, not 'MyCoolClassDelegate'
这就是为什么您需要将其声明为 : class
。