我在 Realm 浏览器中打开了我的 Realm 数据库,我可以看到有实际数据(10 个实体)。
但是当我调用 print("realm objects\(self.realm.objects(CharacterModel.self))")
结果为空:
realm objects Results<CharacterModel> <0x7f8d8f204a30> (
)
当我放置断点并检查数据库状态时,此时数据存在。为什么会这样?
Realm 是这样声明的:
static func realm() -> Realm{
do {
let realm = try Realm()
return realm
} catch let error as NSError {
fatalError("Error opening realm: \(error)")
}
}
最佳答案
如果我们消除一些变量,答案可能会自行揭晓:
以下代码适用于包含 Person() 对象的 Realm
func doPrintData() {
do {
let realm = try Realm()
print("realm objects \(realm.objects(Person.self))")
} catch let error as NSError {
print(error.localizedDescription)
}
}
下面的也行
func realm() -> Realm{
do {
let realm = try Realm()
return realm
} catch let error as NSError {
fatalError("Error opening realm: \(error)")
}
}
func doPrintData() {
do {
let realm = self.realm()
print("realm objects \(realm.objects(Person.self))")
} catch let error as NSError {
print(error.localizedDescription)
}
}
可能涉及更多代码,但请尝试上述解决方案之一,看看它是否有所作为。
关于Swift Realm 返回零对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46733538/