【发布时间】:2024-05-22 07:05:02
【问题描述】:
我有两个模型,我正在尝试使用 RealmSwift 在 swift 中进行子类化
模型 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:朋友
@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,它会突出显示我对领域的初始化:let realm = RealmService.shared.realm
当我删除我的朋友模型时,应用程序运行良好。
如何在 Realm 中正确子类化?
【问题讨论】:
标签: swift realm swift4 realm-mobile-platform