swift - 在 Cocoa 中观察数据变化的最佳方式是什么

标签 swift cocoa

我有一个单例来为我的 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/

相关文章:

cocoa - 如何将 NSButton 启用状态绑定(bind)到组合条件

cocoa - 如果 NSView 上的边缘是圆角的,则没有阴影

ios - SwiftUI - 如何关闭工作 TableView ,同时关闭该 View

iphone - 获取 iOS 中移动证书中包含的 pfx 文件

c++ - 关闭多线程 NSDocument

macos - 禁用恢复

ios - 根据 swift 中传递的整数运行函数

Swift:通过指针访问计算属性

xcode - 从编译的代码中找到 Swift 中的源项目目录

xcode - 在 Swift 中从 Firebase 获取单独的数据