gpt4 book ai didi

cocoa - Cocoa 中的自动键值观察

转载 作者:行者123 更新时间:2023-12-03 16:12:33 24 4
gpt4 key购买 nike

随着我对 KVO 和 KVC 的了解越来越多,我变得很好奇 -

NSObject在访问setter方法时如何提供自动KVO?

如果我使用名为 setName 的访问器创建一个新对象,

当有人调用时观察者如何得到通知

[obj setName:@"Mystery"];

感谢您的反馈

最佳答案

我总是向人们解释“Cocoa 中没有什么魔法;它只是代码。”但 KVO 近乎神奇。这就是所谓的isa-swizzling。您的类会在运行时(第一次有人观察您时)转换为动态生成的子类,该子类会重载所有 getter 和 setter。对 -class 的调用会欺骗您并返回旧类,因此如果您直接查看 isa,除了在调试器中之外,您不会看到神奇的子类指针。

注意到 KVO 肯定很奇怪,这是 Cocoa 启蒙的重要一步。恭喜。

Key-Value Observing Implementation Details

关于cocoa - Cocoa 中的自动键值观察,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1307066/

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