RunTime基础
基础路径图:
RunTime进阶
进阶路径图:
在学习
RunTime
进阶的时候, 我们就要了解更加的深入.
消息机制:
- objc_msgSend
- objc_msgSend_fpret
- objc_msgSend_stret
- objc_msgSendSuper
- objc_msgSendSuper_stret
对象关联:
- objc_setAssociatedObject()
- objc_getAssociatedObject()
- objc_removeAssociatedObjects()
对象关联的策略:
- OBJC_ASSOCIATION_ASSIGN
- OBJC_ASSOCIATION_RETAIN_NONATOMIC
- OBJC_ASSOCIATION_COPY_NONATOMIC
- OBJC_ASSOCIATION_RETAIN
- OBJC_ASSOCIATION_COPY
动态方法解析:
-
resolveInstanceMethod:
-
YES
, 通过class_addMethod
消息得到处理, 结束 -
NO
, 进入forwardingTargetForSelector
- 指定响应
selector
, 消息得到处理, 结束 - 不指定响应
selector
- 进入
methodSignatureForSelector
, 指定方法签名, 调用forwardInvovation
, 通过anInvocation
做处理, 消息得到处理, 结束 - 不指定方法签名, 该消息没有得到处理, 系统报错
- 进入
- 指定响应
-
RunTime应用
应用路径图: