我正在使用RealmSwift尝试对两个模型进行子类化。
模型1:用户
@objcMembers class User: Object, Codable {
dynamic var id: Int = 0
dynamic var username: String = ""
dynamic var email: String = ""
dynamic var counts: Counts = Counts(follows: 0, followed_by: 0)
convenience init(id: Int, username: String, email: String, counts: Counts) {
self.init()
self.id = id
self.username = username
self.email = email
self.counts = counts
}
}
class Counts: Codable {
let follows: Int
let followed_by: Int
init(follows: Int, followed_by: Int) {
self.follows = follows
self.followed_by = followed_by
}
}
我创建了一个继承自Codable的模型,因为我正在使用Swift 4的新解码方法。这个模型运行良好。我可以添加一个用户并成功读取它。所以这样做是有效的:
let newUser = User(id: 1, username: "user1", email: "user1@gmail.com", counts: Counts(follows: 100, followed_by: 500000000))
RealmService.shared.write(newUser)
现在我正在尝试创建一个名为“Friend”的模型,其中有一个字段继承自用户(User)
模型2:好友(Friend)
@objcMembers class Friend: Object {
dynamic var user: User = User(id: 0, username: "", email: "", counts: Counts(follows: 0, followed_by: 0))
dynamic var dateAdded: Date = Date(timeIntervalSinceNow: 0)
convenience init(user: User, dateAdded: Date = Date(timeIntervalSinceNow: 0)) {
self.init()
self.user = user
self.dateAdded = dateAdded
}
}
当我这样做并加载我的应用程序时,我得到一个SIGBART,并且它突出了我的realm初始化:let realm = RealmService.shared.realm
当我删除我的Friend模型时,应用程序可以正常工作。
如何正确地继承Realm?