Poniższy inicjalizacji obecnie produkuje ten błąd w wierszu, który wywołuje getEventCalendar
:Inicjalizacja leniwe zmiennej instancji o wartości, która zależy od innych zmiennych instancji
Nie można użyć instancji członkowskiego „getEventCalendar” w nieruchomości inicjatora; inicjatory właściwości działają, zanim dostępne jest "samo".
Czy istnieje odpowiedni sposób do inicjowania zmiennej lazy
instancji o wartości, która zależy od innych obiektów typu instance variables
z self
(nie tylko self
alone)? Mam np. próbował przekształcić getEventCalendar
z metody w funkcję, ale to też nie pomaga.
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? {
// ...
}
}
pokrewne: http://stackoverflow.com/questions/38118429/swift-lazy-instantiating-using-self. –