gpt4 book ai didi

objective-c - 有没有办法判断 KVO 何时开始/结束特定值?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:10 25 4
gpt4 key购买 nike

我有一些值是通过集合计算的,在任何给定时间可能显示也可能不显示(因此可能有也可能没有观察者)。如果没有人观察我的计算值,我宁愿不必跟踪集合的所有成员。

我可以判断是否有人当前正在观察一个值,我可以判断他们何时开始观察吗?

我知道对于给定的对象 foo 我可以使用 [foo observationInfo] 来获取观察者列表,这些观察者的关键路径在 foo 的根目录中注册,但是这不会自动获取到 foo 的所有路径(事实上它只会让那些注册观察 foo 的自 key )。

最佳答案

从设计的角度来看,这不是一个好主意。如果你真的坚持在没有人需要的时候不更新内容(这可能是合法的情况,例如,如果更新很昂贵),你可以引入启动/停止更新的方法:

- (void) beginUpdatingContents;
- (void) endUpdatingContents;

这些应该与类内的计数器相关联,如果计数器 > 0,则您知道有人想要更新内容。这个解决方案是明确的,因此比使用 KVO 的无声魔法更好。

关于objective-c - 有没有办法判断 KVO 何时开始/结束特定值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com