Наследовать от EKCalendarItem - PullRequest
0 голосов
/ 12 марта 2019

Поскольку EKEvent не может содержать дополнительные свойства, я думал о создании собственного класса Event и наследовании от EKCalendarItem (так же, как класс EKEvent).

Но я получаю ошибку FrozenClass, которая является для меня совершенно новой. Кто-нибудь знает, что это значит? EKCalendarItem - открытый класс, поэтому, насколько я знаю, я должен иметь возможность наследовать от него. Или ... я здесь не прав?

Точная ошибка:

'+ [MyApp.Event frozenClass]: нераспознанный селектор отправлен в класс 0x105667068'

Мой код:

class Event: EKCalendarItem {

// MARK: - Properties

var id: String
var startDate: Date
var endDate: Date
var isAllDay: Bool

// MARK: - Inits

init?(id: String, dictionary: [String: Any]) {
    guard
        let title = dictionary["title"] as? String,
        let startDate = dictionary["startDate"] as? Timestamp,
        let endDate = dictionary["endDate"] as? Timestamp,
        let isAllDay = dictionary["isAllDay"] as? Bool
        else { return nil }

    self.id = id
    self.startDate = startDate.dateValue()
    self.endDate = endDate.dateValue()
    self.isAllDay = isAllDay

    super.init()

    self.location = dictionary["location"] as? String
    self.title = title
    self.notes = dictionary["notes"] as? String
}

convenience init?(snapshot: QueryDocumentSnapshot) {
    self.init(id: snapshot.documentID, dictionary: snapshot.data())
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...