在尝试在Swift 3.0.2 iOS项目中使用Realm时,我遇到了一个问题。从简单开始,我想将它应用于名为Genre
的类:
import Foundation
import RealmSwift
class Genre: Object {
dynamic var id: Int
dynamic var name: String
init?(id: Int, name: String) {
self.id = id
self.name = name
super.init()
}
}
看起来很简单吧?尽管如此,我收到以下编译错误:
Genre.swift:23:1: 'required' initializer 'init()' must be provided by subclass of 'Object'
Genre.swift:23:1: 'required' initializer 'init(realm:schema:)' must be provided by subclass of 'Object'
Genre.swift:23:1: 'required' initializer 'init(value:schema:)' must be provided by subclass of 'Object'
有任何暗示我如何解决这个问题?从我在网上看到的情况来看,我没有必要实施这些方法。
设定:
答案 0 :(得分:2)
Overriding init
directly isn't possible in Realm
您可以将init
标记为convenience
来解决此问题。
import Foundation
import RealmSwift
class Genre: Object {
dynamic var id: Int
dynamic var name: String
convenience init(id: Int, name: String) {
self.init()
self.id = id
self.name = name
}
}