Zalecanym sposobem jest tworzenie memberwise ogólnospożywczy inicjatora, jak następuje:
class Item: Object {
dynamic var isBook: Bool = true
dynamic var numberOfPages: Double = 0
dynamic var isInForeignLanguage: Bool = true
dynamic var isFictional: Bool = true
dynamic var value: Int {
get {
return calculalatedValue()
}
}
convenience init(isBook: Bool, numberOfPages: Double, isInForeignLanguage: Bool, isFictional: Bool) {
self.init()
self.isBook = isBook
self.numberOfPages = numberOfPages
self.isInForeignLanguage = isInForeignLanguage
self.isFictional = isFictional
}
...
}
Nie można pominąć domyślny inicjator ponieważ Realm potrzebuje domyślnego inicjalizatora do tworzenia instancji obiektów do odpytywania. Podczas wysyłania zapytań do obszaru, Realm wywołuje domyślnie inicjator, aby utworzyć instancje obiektów.
Można również zastąpić domyślny inicjator, ale nie zalecamy go. Ponieważ w przypadku nadpisania domyślnego inicjalizatora, należy zastąpić inne wymagane inicjalizatory odziedziczone z warstwy ObjC z powodu ograniczenia systemu typu Swift. Powinieneś również zaimportować zarówno frameworky Realm
, jak i RealmSwift
. Ponieważ istnieją tylko klasa Objective-C w parametrach tych inicjalizatorów.
import RealmSwift
import Realm // Need to add import if you override default initializer!
class Item: Object {
dynamic var isBook: Bool = true
dynamic var numberOfPages: Double = 0
dynamic var isInForeignLanguage: Bool = true
dynamic var isFictional: Bool = true
dynamic var value: Int {
get {
return calculalatedValue()
}
}
required init() {
super.init()
}
required init(realm: RLMRealm, schema: RLMObjectSchema) {
super.init(realm: realm, schema: schema)
}
required init(value: AnyObject, schema: RLMSchema) {
super.init(value: value, schema: schema)
}
Dzięki wielkie! Tak więc zalecanym sposobem radzenia sobie z inicjowaniem jest pierwszy fragment kodu. Pojawiają się pierwsze domyślne inicjalizatory, po czym następuje wygoda init? – DCDC
Tak. zalecanym sposobem radzenia sobie z inicjowaniem jest pierwszy fragment kodu. i pierwsze domyślne inicjatory wchodzą w grę, po czym następuje inicjacja wygody. –