当前位置: 首页 > 面试题库 >

Swift中是否可以使用键值观察(KVO)?

潘琨
2023-03-14
问题内容

如果是这样,那么在Objective-C中使用键值观察时是否没有其他键差异?


问题答案:

(编辑以添加新信息):考虑使用Combine框架是否可以帮助您完成所需的工作,而不是使用KVO

是的,没有。KVO一直以来都在处理NSObject子类。它不适用于不继承NSObject的类。斯威夫特(目前至少)没有自己的原生观察系统。

(有关如何将其他属性公开为ObjC的信息,请参见注释,以便KVO在它们上起作用)

有关完整示例,请参阅Apple文档。



 类似资料:
  • 键值观察 - KVO 在 KVO 里,对象可以注册监听任何属性的变化,不管它是否持有。如果感兴趣的话,可以读一读苹果 KVO 编程指南。 如何使用 KVO 正如前面所提及的, 对象可以关注任何属性的变化。在我们的例子里,我们可以用 KVO 关注 UIImageView 的 image 属性变化。 打开 AlbumView.swift 文件,找到 init(frame:albumCover:) 方法

  • 让我们考虑下面的示例代码: 在函数gude()中,将创建一个新的observable,它将发出哈希值,该哈希值的前n个前导值设置为零。一个观察者订阅了那个可观察的,并立即取消订阅。让我们假设函数createHashWithNLeadingZeroes()需要相当长的时间来生成响应。 我想这里发生了以下事情: (1) 创建了一个新的可观察对象,描述可观察对象行为的函数被内部存储在属性_subscri

  • 问题内容: 我正在尝试了解观察者和可观察者。 这是我要弄清楚的一个示例: 该可制成只是因为延伸? 该观察者被添加到哪里?正在创建什么,在哪里创建? 和之间有什么区别? 我不明白这种方法。代表什么?为什么需要检查?为什么要更新另一个可观察的东西? 无论如何我为什么需要这个观察者? 问题答案: 是。是抽象类中的方法。请参阅Java文档中的Observable。 它已添加到中的列表中。 在设置之前,对的

  • 这是我想做的代码,但什么也没有做。我甚至试过这个 但我找不到任何解决办法...有人能帮我吗?

  • 我已经阅读了ReactiveX留档几次,仍然无法完全理解当观察者订阅可观察文件时会发生什么。 我们来看一个简单的例子: StackBlitz代码。 我的问题: 传递给可观察对象的

  • 我来自同步编程背景,我很难理解可观察性。 这是我的服务/提供商的摘录(离子2项目) 我将从订阅它。关于这一点,我有几个问题。 > 即使我没有声明,上面的代码是否返回一个可观察/观察者? 响应是JSON。如何检查/处理JSON并执行一些操作,如 那就做吧 我认为应该在提供者类中完成。只是一个典型的提示/例子将是真棒。 当请求到达subscribe方法时,它是否真的发生了? 创建和返回Angular