如何使用 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 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 个月),我不知道这样做的后果。但我的项目工作得很好。一切都在完美地保存和检索。
我正尝试在 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 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 个月),我不知道这样做的后果。但我的项目工作得很好。一切都在完美地保存和检索。