我正在制作一个使用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()结束时(有一个断点),我运行
ios - 难以理解Realm中的allObjects()-LMLPHP
所以显然有一个锻炼对象,但是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/

10-09 09:15