我正在制作一个使用Realm作为离线数据库的应用程序。问题是,当我调用Workout.allObjects()
时,没有显示任何内容。我做了一些调试,结果如下
相关代码
class Workout: RLMObject {
dynamic var name: String?
dynamic var exercises: RLMArray = RLMArray(objectClassName: "Exercise")
dynamic var numberOfWorkouts = 0
convenience init(name: String) {
self.init()
self.name = name
}
}
func createWorkoutObject() {
let realm = RLMRealm.defaultRealm()
try! realm.transactionWithBlock {
workout = Workout()
}
}
在
createWorkoutObject()
结束时(有一个断点),我运行所以显然有一个锻炼对象,但是
Workout.allObjects()
似乎看不到它。这是为什么?我很难理解我做错了什么。
最佳答案
allObjects()
方法只返回由给定领域管理的对象。在createWorkoutObject()
中创建Workout
的实例,但不要将其添加到域中。由于这个新对象不是由领域管理的,allObjects()
不会返回它。
尝试:
func createWorkoutObject() {
let realm = RLMRealm.defaultRealm()
try! realm.transactionWithBlock {
workout = Workout()
realm.addObject(workout)
}
}
关于ios - 难以理解Realm中的allObjects(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38922941/