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++语言的方法分发里哦. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |