【发布时间】:2016-10-05 07:11:45
【问题描述】:
以下初始化当前在调用getEventCalendar 的行中产生此错误:
不能在属性中使用实例成员“getEventCalendar” 初始化器;属性初始化程序在 'self' 可用之前运行。
是否有任何合适的方法来初始化lazy 实例变量,其值取决于self 的其他对象类型instance variables(不仅仅是self alone)?我有例如尝试将 getEventCalendar 从方法转换为函数,但这也无济于事。
class AbstractEventCalendarClient {
let eventStore: EKEventStore
let entityType: EKEntityType
lazy var eventCalendar = getEventCalendar()
init(eventStore: EKEventStore, entityType: EKEntityType) {
self.eventStore = eventStore
self.entityType = entityType
}
func getEventCalendar() -> EKCalendar? {
// ...
}
}
【问题讨论】:
-
相关(几乎重复?):stackoverflow.com/questions/38118429/….
标签: swift swift3 lazy-evaluation