如何使用 Realm Swift Init

How to use Realm Swift Init

我正尝试在 Swift 中使用 Realm 的 init。我尝试了以下

override init(value: AnyObject) { 
    super.init() 
    println("this is not called") 
} 

required init() { 
    super.init() 
    println("this is called") 
}

我希望能够将一个对象传递给初始化程序,但是,我无法获得要调用的第一个函数。

领域 Swift 尚不支持覆盖 Object.init()Object.init(_:),但您可以关注 https://github.com/realm/realm-cocoa/issues/1849 获取更新!

我在Swift 3

中的解决方案

自定义初始化程序:

class Branches: Object {

    dynamic var key: String = NSUUID().uuidString
    dynamic var formattedAddress: String = ""
    dynamic var latitude: Double = 0.0
    dynamic var longitude: Double = 0.0


 convenience init(formattedAddress: String, latitude: Double, longitude: Double) {
    self.init()
    self.formattedAddress = formattedAddress
    self.latitude = latitude
    self.longitude = longitude
 }

 override static func primaryKey() -> String? {
    return "key"
  }
}

这是我对 iOS 13Swift 5 的回答。

老实说,我当时并不知道自己在做什么,但我这样做了:

class Account: Object {

    @objc dynamic var name: String = ""
    @objc dynamic var balance: Double = 0.0
    @objc dynamic var savings: Double = 0.0
    @objc dynamic var available: Double = 0.0


    init(name: String, balance: Double){
    
        self.name = name
        self.balance = balance
        self.savings = 0.0
        self.available = balance
    
    }

    required init() {
        //fatalError("init() has not been implemented")
    }
}

请记住,我是 Swift 的新手(大约 3 个月),我不知道这样做的后果。但我的项目工作得很好。一切都在完美地保存和检索。