Swift 领域+;NSTableView&x2B;NSArrayController

Swift 领域+;NSTableView&x2B;NSArrayController,swift,macos,realm,nstableview,nsarraycontroller,Swift,Macos,Realm,Nstableview,Nsarraycontroller,我的macOS应用程序有一些问题,希望您能帮助我。 我是macOS的新手,所以请友好一点;) 应用程序的一部分由一个简单的NSTableView组成,其中的内容绑定到NSArrayController。 NSArrayController从一个领域数据库提供数据 正如您所看到的,每一行都有一个复选框,它应该设置realm对象中的bool值 绑定是正常的,因此如果我标记/取消标记复选框,它似乎会尝试在领域对象上写入。 但由于realm需要一个活动的写事务,而该事务不会被触发,所以它会崩溃 我的问

我的macOS应用程序有一些问题,希望您能帮助我。 我是macOS的新手,所以请友好一点;)

应用程序的一部分由一个简单的NSTableView组成,其中的内容绑定到NSArrayController。 NSArrayController从一个领域数据库提供数据

正如您所看到的,每一行都有一个复选框,它应该设置realm对象中的bool值

绑定是正常的,因此如果我标记/取消标记复选框,它似乎会尝试在领域对象上写入。 但由于realm需要一个活动的写事务,而该事务不会被触发,所以它会崩溃

我的问题是: 如何使用表视图绑定在领域对象上编写?
有什么想法吗

您可以尝试将以下内容添加到模型对象(领域对象):


工作起来很有魅力;)非常感谢你!Swift错误在这一点上已经修复了吗?如果没有,你有关于Swift的bug tracker问题的链接吗?你能告诉我你是如何在realm中使用nsarraycontroller的吗?我现在在路上,但今晚我会给你一个片段;)谢谢男人:)。已将阵列控制器与coredata一起使用。但在某些情况下(一个表包含300k条记录)过滤速度太慢。CoreData非常糟糕,很抱歉我的响应太晚。我现在找不到代码或这个,但一点也不难。整个过程就是像平常一样将数组控制器绑定到tableView,并通过领域通知块更改数组控制器的内容。
override func setValue(_ value: Any?, forKey key: String) {
    try! realm?.write {
        self.mySetValue(value, forKeyPath: key) // bug in swift preventing directly calling super here
    }
}

private func mySetValue (_ value: Any?, forKeyPath key: String) {
    super.setValue(value, forKey: key)
}