我正在尝试在Swift中使用init for Realm。我试过以下
override init(value: AnyObject) {
super.init()
println("this is not called")
}
required init() {
super.init()
println("this is called")
}
我希望能够将一个对象传递给初始化器,但是,我无法调用第一个函数。
答案 0 :(得分:20)
我在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"
}
}
答案 1 :(得分:5)
Realm Swift尚不支持覆盖Object.init()
和Object.init(_:)
,但您可以按https://github.com/realm/realm-cocoa/issues/1849进行更新!
答案 2 :(得分:0)
这是我对iOS 13
,Swift 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个月左右),我不知道这样做的后果。但是我的项目运行正常。一切都可以完美保存和检索。