Кажется, что большинство людей с этой ошибкой пытаются создать нулевые строки. Я просто три свойстваSwift: ошибка Realm при инициализации «NULL не поддерживается как свойство RLMObject». Но у меня нет NULL
dynamic var babyEvent: Int
dynamic var eventDate: NSDate
dynamic var timeSpent: Int
, которые инициализируются в инициализации() в
override init()
{
self.babyEvent = BabyWet
self.eventDate = NSDate()
self.timeSpent = 5
super.init()
}
, но к тому времени super.init() называется я «(нуль)» не поддерживается свойство RLMObject.
Существует два входа и один NSDate, все из которых являются действительными типами свойств Realm. Так почему я получаю эту ошибку?
Супер звонки должны нормально быть всегда первым делом можно назвать в большинстве объектно-ориентированных языков. Является ли super.init() ожидающим каких-либо данных? –
Я тоже так думал, но выполнение вызова super.init() сначала приводит к ошибке времени компиляции. «Свойство» не инициализируется при вызове super.init(). –
@ user3427079 Swift отличается, вы не можете вызывать из инициализатора до тех пор, пока не будут инициализированы все локальные свойства, поэтому вызов super после того, как локальные свойства задают свои значения. – Anorak