【发布时间】:2020-04-06 07:02:00
【问题描述】:
我声明一个协议:
protocol FullNameable {
var fullName: String {get set}
}
然后对类和结构采用上述协议,如下所示:
struct LectureStruct: FullNameable {
var fullName: String
}
class LectureClass: FullNameable {
var fullName: String
}
但是对于类我收到错误 - 没有初始值的存储属性“fullName”会阻止合成初始值设定项。为什么这个错误不是针对结构的?
【问题讨论】:
-
swift 结构有默认构造函数,包括所有未定义的属性,在这种情况下类必须有显式构造函数(由于继承)。
标签: swift properties protocols