美文网首页
KVO键值观察通知依赖于 NSObject 的两个方法

KVO键值观察通知依赖于 NSObject 的两个方法

作者: 诺宇 | 来源:发表于2016-10-08 20:58 被阅读17次

键-值观察实现细节(Apple 文档:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/KeyValueObserving/Articles/KVOImplementation.html
自动键-值观察是由叫isa-swizzling的技术实现的。
isa指针,如其名称所指,指向维护分发表的对象的类。该分发表实际上包含了指向实现类中的方法的指针,和其它数据。
当某个对象的属性注册了中观察者时,当该被观察对象的isa指针被修改为指向一个中间类,而不是真实的类。因此isa指针的值并不一定反映实例的实际类。
你的程序应当使用class方法来确定实例对象的类,而不是依赖于isa指针

KVO.png
KVC主要通过isa-swizzling,来实现[site setValue:@"sitename" forKey:@"name"];
编译器处理成:
SEL sel = sel_get_uid ("setValue:forKey:");
IMP method = objc_msg_lookup (site->isa,sel);
method(site, sel, @"sitename", @"name");

相关文章

  • 面试题

    得物 KVO willchangevalue什么时候调用 键值观察通知依赖于 NSObject 的两个方法: w...

  • 问题:如何手动触发一个value的KVO

    键值观察通知依赖于NSObject的两个方法: willChangeValueForKey didChangeVa...

  • KVO键值观察通知依赖于 NSObject 的两个方法

    键-值观察实现细节(Apple 文档:https://developer.apple.com/library/ma...

  • 417,Swift 怎么实现KVO(面试点:基于NSObject

    一、KVO kvo键值观察者 Swift继承NSObject的KVO swift 实现kvo需要两个条件,第一要是...

  • KVO

    KVO 简介 KVO 键值观察机制,就是观察指定对象的指定属性变化情况。 KVO 键值观察 依赖于 KVC 健值编...

  • KVC & KVO 原理剖析

    1.KVO 前沿 KVO(Key-Value Observing, 键值观察), KVO的实现也依赖于runtim...

  • iOS NSNotification通知和KVO的使用

    一:KVO: 键值观察 是基于键值编码实现的一种观察者机制,其实现依赖于 Objective-C 强大的 Runt...

  • IOS KVO详解

    KVO(键值观察)键值观察是一种机制,它允许将其他对象的指定属性的更改通知给对象。 重要提示: 为了了解键值观察...

  • KVO、KVC

    KVO(Key Value Observing) 键值观察,苹果提供的一套事件通知机制 KVO用于监听对象某个属性...

  • KVO

    KVO:键值观察机制,它提供了观察某一属性变化的方法 底层实现:

网友评论

      本文标题:KVO键值观察通知依赖于 NSObject 的两个方法

      本文链接:https://www.haomeiwen.com/subject/xbibjttx.html