swift - 观察非属性对象的变化
问题描述
我正在构建一个使用共享扩展的 Mac OS 应用程序。这意味着它基本上是两个应用程序,主应用程序和共享扩展应用程序。
为了在彼此之间传递数据,我使用了一个共享容器套件,如下所示:
let sharedDefaults = UserDefaults.init(suiteName: "com.myapp.sharedsuite")
let existingData = sharedDefaults?.value(forKey: "data")
sharedDefaults?.setValue("blah", forKey: "data")
这样数据共享就解决了。但是,我希望我的主应用程序能够“监听”这些数据何时发生变化。我不能使用delegate
模式,因为这两个应用程序是分开的并且没有相互引用。Notifications
我相信也是本地化和沙盒化的,所以我不能使用它们。
这留下了 KVO 模式,我希望在值更改时收到通知sharedDefaults?.value(forKey: "data")
。问题是我不确定如何观察这个值,因为它不是我的主应用程序View Controller
类的属性。此外,数据对象可以是一个数组structs
,而不是一个NSObject
,我认为这是观察属性的要求。
任何帮助表示赞赏。谢谢
解决方案
推荐阅读
- css - WooCommerce 店面 - 如何自定义产品目录并减少空白?
- php - 有没有办法在传递 $_SESSION 变量作为参数时从 PHP 调用 mySQL 存储过程?
- android - Http请求拦截不显示任何日志信息
- bash - 在 Bash 中查找所有环境变量
- jestjs - Jest 文件中的要求有多正确?(带有模块模式 js 文件)
- python - 使用Python检查列表元素是否是另一个列表中的子元素
- xml - XQuery - 列出每个大陆上人口最多的国家的名称和人口
- c++ - TDLib:如何在消息中发送粗体文本?(С++)
- javafx - 有没有办法提高 JavaFX 图表刻度线的精度?
- javascript - 如何处理“ RangeError:超出最大调用堆栈大小”