Runtime的底层实现

任何方法调用的本质: 其实是发送了一个消息, 用runtime发送消息, OC底层实现通过runtime实现

最终生成消息机制, 编译器做的事情, clang -rewrite-objc main.m 查看最终生成代码

 使用runtime创建一个NSobject对象的步骤:

1. 必须要导入头文件


在xcode6之前, 苹果运行使用objc_msgSend是有参数提示的, xcode6之后苹果不推荐我们使用runtime, 可以通过xcode的buile setting, 搜索msg把runtime设置为NO就可以使用runtime了


2. 使用runtime调用私有方法

下面我定义了一个person类继承于NSObject, 在.m文件里面直接实现了-(void)eat{}方法, 如果按照我们平时的习惯, 直接调用 [p eat] 方法会报错的, 但是使用runtime方法调用则不会


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,885评论 0 9
  • 对于从事 iOS 开发人员来说,所有的人都会答出【runtime 是运行时】什么情况下用runtime?大部分人能...
    梦夜繁星阅读 9,113评论 7 64
  • 我们常常会听说 Objective-C 是一门动态语言,那么这个「动态」表现在哪呢?我想最主要的表现就是 Obje...
    Ethan_Struggle阅读 6,614评论 0 7
  • 画不好画怎么办
    心智不全阅读 1,571评论 0 0
  • 可否在一场细雨之中,洗净太多生活的琐碎烦乱,就静静的让自己听一首属于自己的相思。 文字一定不会因我冠以诗意的题...
    紫如意阅读 2,688评论 1 2

友情链接更多精彩内容