Objective-C的哪些特性利用了运行时机制

https://www.jianshu.com/p/02d3d689d556

  • method swizzling: objective-c向一个对象发送消息时,具体会执行哪个方法,则是运行时系统根据selector查找对应的IMP得到的。

objc_getAssociatedObject
id _object_get_associative_reference(id object, void *key)
猜测一下get的过程应该是这样的:

先获取AssociationsManager单例,进而获取AssociationsHashMap
通过object获取ObjectAssociationMap
通过key获取ObjcAssociation
取出ObjcAssociation中的value并返回


image.png

objc_setAssociatedObject

Runtime源码 —— Associated Object
https://www.jianshu.com/p/de95ff8230bd
Runtime源码 —— 对象、类和isa
https://www.jianshu.com/p/a8eade8a1c6d

你可能感兴趣的:(Objective-C的哪些特性利用了运行时机制)