Swift运行时简介

前端之家收集整理的这篇文章主要介绍了Swift运行时简介前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

因为Swift的操作在高层并且也得与Objc联合起来干活,用Swift写的程序一般会被Objc和Swift运行时处理.因为Swift的本性——换句话说,它是一门静态语言——Swift运行时在一些关键地方和Objc运行时有很大的不同.

其中最大的最重要的一个不同就是Swift如何在运行时处理方法的分发.

和Objc相反,Swift并不允许Objc中高动态的方法解析——消息传递.许多Objc经典的特性,比如响应并不在特定类中定义实现方法的消息,它使得”swizzle”方法(就是在运行时替换其他类中的方法)成为可能,并且它有能力在运行时定义方法,这在Swift中可是天方夜谭.

但怎么说呢,有得就有失,作为补偿Swift允许高类型安全,在理论上,改善了方法分发的性能.(Objc的方法分发机制与C++之类的语言相比会比较慢,因为实现上必须在运行时查找哈希表——尽管要感谢Objc运行时所做的一些技巧,性能损失一般可以忽略不计)

Swift不像Objc那样使用方法动态方法分发系统,作为替代Swift使用虚方法表(virtual method tables),或者成为tables.虚方法表也同样被用在C++语言的方法分发里哦.

原文链接:https://www.f2er.com/swift/323246.html

猜你在找的Swift相关文章