在ObjC
中,它使用Messaging
、static binding
、dynamic typing
、dynamic binding
、dynamic method resolution
、dynamic loading
、introspector
等技术。
重要的是,核心方法objc_msgSend
负责获取您正在发送的选择器和您要将其发送到的对象,并查找类方法表以确定应该处理它的确切代码。
我的关注点如下:
Swift
是否在运行时执行类似于ObjC
的操作?Swift运行时
如何找到一些对象/类方法的实现代码?在
ObjC
中,classes
和objects
会被编译为一些runtime types
(例如C struct
)在运行时。那么这样的classes
和objects
在Swift
中在运行时被编译成什么?Swift运行时
是否有像class / meta class / isa pointer / super pointer
这样的东西?