Objective-C Runtime

来源:互联网 发布:蓝光软件 编辑:程序博客网 时间:2024/05/22 07:47

http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/

本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。主要内容如下:

  • 引言
  • 简介
  • 与Runtime交互
  • Runtime术语
  • 消息
  • 动态方法解析
  • 消息转发
  • 健壮的实例变量(Non Fragile ivars)
  • Objective-C Associated Objects
  • Method Swizzling
  • 总结

引言

曾经觉得Objc特别方便上手,面对着 Cocoa 中大量 API,只知道简单的查文档和调用。还记得初学 Objective-C 时把[receiver message]当成简单的方法调用,而无视了“发送消息”这句话的深刻含义。其实[receiver message]会被编译器转化为:


objc_msgSend(receiver, selector)


如果消息含有参数,则为:


objc_msgSend(receiver, selector, arg1, arg2, ...)



0 0