@select 是oc Runtime那一套东西,swift本身没有runtime的
1.为什么Swift暴露给OC的类最终要继承自NSObject?
- oc调用swift,swift类要继承NSObject,因为alloc这些类方法来自于NSObject ,调用方法要有个iss指针去使用runtime那一套东西,所以必须继承与NSObject
2.p.run()底层是怎么调用的?反过来,oc调用Swift底层又是如何调用?
3.car.run()底层是怎么调用?
- 仍然是swift虚表那些东西,如果非要使用objc-msgsend调用逻辑的话,则要给run()添加dynamic修饰符
String