NSArray 中包含的模型上的 KVO

发布于 2024-11-06 04:28:26 字数 592 浏览 0 评论 0原文

我想观察 NSArray 中包含的模型的属性。我无法使用“arrayOfModels.property”的 keyPath,因为 NSArray 会抛出异常 相反

- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;

,文档说要使用

- (void)addObserver:(NSObject *)observer toObjectsAtIndexes:(NSIndexSet *)indexes forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;

So 这是否意味着我还必须监听“arrayOfModels”本身,以便当其元素发生变化时,我可以从旧元素中删除侦听器并将它们附加到新元素吗?我希望 KVO 足够出色,能够以某种方式为我解决这个问题......

I would like to observe a property on models contained in an NSArray. I can't use a keyPath of "arrayOfModels.property", because NSArray throws an exception on

- (void)addObserver:(NSObject *)observer forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;

Instead, the docs say to use

- (void)addObserver:(NSObject *)observer toObjectsAtIndexes:(NSIndexSet *)indexes forKeyPath:(NSString *)keyPath options:(NSKeyValueObservingOptions)options context:(void *)context;

So does that mean I'd also have to listen to "arrayOfModels" itself, so that when its elements change, I can remove listeners from the old elements and attach them to the new elements? I was hoping KVO would be awesome enough to take care of this for me somehow...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

前事休说 2024-11-13 04:28:26

似乎没有内置的方法可以做到这一点,所以我只是删除旧的侦听器并在数组成员资格更改时添加新的侦听器。

Doesn't seem like there's a built-in way to do this, so I'm just removing old listeners and adding new ones when the array membership changes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文