【发布时间】:2017-06-22 22:33:38
【问题描述】:
import RealmSwift
import Realm
public class Card : Object {
var username : String
var firstName : String
var lastName : String
init?(dictionary: [String:Any]?) {
guard let dictionary = dictionary , let username = dictionary["username"] as? String else { return else}
self.username = username
self.firstName = firstName
self.lastName = lastName
}
required public init() {
fatalError("init() has not been implemented")
}
required public init( realm: RLMRealm, schema: RLMObjectSchema) {
fatalError("init(realm:schema:) has not been implemented")
}
required public init( value: Any, schema: RLMSchema) {
fatalError("init(value:schema:) has not been implemented")
}
}
我明白了:
'self' 在 super.init 调用之前使用
我的班级工作正常。添加 RealmSwift 后,我遇到了这些错误。如果我添加 super.init() 它会抱怨:
属性 'self.username' 未在 super.init 调用时初始化
【问题讨论】:
-
请注意,由 Realm 管理的
String属性必须使用dynamic var声明,否则您将无法获得预期的结果。请参阅Realm's property declaration cheatsheet 了解更多信息。 -
谢谢 bdash 将它们修改为动态变量