美文网首页
20170222 Runtime  Sketch

20170222 Runtime  Sketch

作者: plantAtree_dAp | 来源:发表于2017-02-22 11:02 被阅读21次

知乎Runtime

尘絮缘

上一篇文章就是受这篇文章启发,这次干脆都翻译过来。
过去的几年中涌现了大量的Objective-C开发者。有些是从动态语言转过来的,比如Ruby或Python,有些是从强类型语言转过来的,如Java或C#,当然也有直接以Objective-C作为入门语言的。也就是说有很大一部分开发者都没有使用Objective-C太长时间。当你接触一门新语言时,更多地会关注基础知识,如语法和特性等。但通常有一些更高级的,更鲜为人知又有强大功能的特性等待你去开拓。
这篇文章主要是来领略下Objective-C的运行时(runtime),同时解释是什么让Objective-C如此动态,然后感受下这些动态化的技术细节。希望这回让你对Objective-C和Cocoa是如何运行的有更好的了解。
The Runtime
Objective-C是一门简单的语言,95%是C。只是在语言层面上加了些关键字和语法。真正让Objective-C如此强大的是它的运行时。它很小但却很强大。它的核心是消息分发。
Messages
如果你是从动态语言如Ruby或Python转过来的,可能知道什么是消息,可以直接跳过进入下一节。那些从其他语言转过来的,继续看。
执行一个方法,有些语言,编译器会执行一些额外的优化和错误检查,因为调用关系很直接也很明显。但对于消息分发来说,就不那么明显了。在发消息前不必知道某个对象是否能够处理消息。你把消息发给它,它可能会处理,也可能转给其他的Object来处理。一个消息不必对应一个方法,一个对象可能实现一个方法来处理多条消息。
在Objective-C中,消息是通过objc_msgSend()这个runtime方法及相近的方法来实现的。这个方法需要一个target,selector,还有一些参数。理论上来说,编译器

Hamster Emporium archive: objc explain_ Monomorphic dispatch


Sketch 破解 PC6.com

相关文章

  • 20170222 Runtime  Sketch

    知乎Runtime 尘絮缘 上一篇文章就是受这篇文章启发,这次干脆都翻译过来。过去的几年中涌现了大量的Object...

  • 每日一拍

    20170222

  • 2017 年你应该了解的Android 库

    原文链接:http://www.cocoachina.com/android/20170222/18743.htm...

  • 20170222

    雪过天晴啦 一个男孩子 在匆匆上学的路上 不忘弯腰揉几个雪球! 一个小女孩趴在路边的花坛边, 与披着婚纱的花儿草儿...

  • 20170222

    1. 健康 (为了身姿挺拔,看起来身材好, 有气质) 每周总锻炼时长3小时以上 起床:6:25, 睡觉:昨晚11:...

  • 20170222

    看金敏善,感觉她是一个用灵魂创造人生的人,会感动每个有灵魂的人,所以最终会得到世人的认可。 以前看爱人,觉得有感触...

  • 20170222

    看了廊桥遗梦的影评。 不管怎样,不需要是维持关系最好的方式。 状态和思维。十分钟无意识放任浏览花边新闻。 今天看多...

  • 20170222

    远方虽远,但和这里只有一双脚的距离,世人疏远,其实只隔着一颗心的距离。

  • 20170222

    1思维笔的空性 都是对的. 一切皆有可能 一切皆来源于我 种子迫使呈现 今天我觉得自己很不耐烦,很暴躁.这都是对的...

  • 20170222

    你到底有没有资本 这个话题正好可以和正在进行中的话题结合起来看,长期究竟是多长? 首先看看笑来老师提出的资本的三要...

网友评论

      本文标题:20170222 Runtime  Sketch

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