Bkz Realm, sorgulama için nesneleri başlatmak amacıyla varsayılan başlatıcıya ihtiyaç duyar. Realm'ye sorgulama yaparken, Realm nesneleri başlatmak için varsayılan başlatıcıyı dahili olarak çağırır.
Ayrıca varsayılan başlatıcıyı da geçersiz kılabilirsiniz, ancak önermiyoruz. Varsayılan başlatıcıyı geçersiz kıldığınızda, Swift tipi sistem sınırlaması nedeniyle ObjC katmanından miras alınan diğer gerekli başlatıcıları geçersiz kılmalısınız. Ayrıca, hem Realm
hem de RealmSwift
çerçevelerini içe aktarmalısınız. Çünkü bu başlatıcıların parametrelerinde Objective-C tek sınıf var. Bu işleri
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)
}
Teşekkür çok! Bu nedenle, başlatmanın başa çıkması için önerilen yol, ilk kod snippet'idir. İlk varsayılan başlatıcılar devreye girdikten sonra kolaylık sağladı mı? – DCDC
Evet. Başlatma ile başa çıkmak için önerilen yol, ilk kod snippet'idir. ve İlk varsayılan başlatıcılar devreye girer, ardından kolaylık başlangıçları. –