我有一个单例来为我的 macOS 应用程序存储一些全局数据,我的一个 ViewController 不断修改数据。我想同时显示与另一个 ViewController 相关的 View 中的更改。执行此操作的最佳方法是什么?
全局数据:
final class AppData {
static var logs: [LogData] = []
}
View Controller 1:
class FirstViewController: NSViewController {
AppData.logs.append(newLogData)
}
View Controller 2:
class SecondViewController: NSViewController {
// what's the best way to simultaneously watch the change of AppData.logs?
}
最佳答案
如果您的 App 计划仅支持 macOS,您可以使用 NSObjectController .这绝对是最简单的方法,您可以在 Interface builder 中完成大部分配置。它在内部与绑定(bind)一起工作。如果你想观察一个数组,你可以使用 NSArrayController。
关于swift - 在 Cocoa 中观察数据变化的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52981211/