设 有Abc类 类中有 名为test 的对象方法,执行一下语句:
Abc *a =[Abc new];
[a test];
执行 [a test] ; 语句时:
1.存在于栈区的a所存储的地址 找到 在堆区创建的 a的实例对象
2.a实例对象按照_isa变量中的地址 查找 同在堆区的Abc类的类对象
3.在Abc的类对象里存储的多个SEL中查找符合由[a test]所封装的SEL
4.查找到符合的SEL后,按照找到的SEL中存储的对象方法地址找到在代码区的代码执行.
问题:
1.在哪一步中封装 [a test]的SEL???
2.封装SEL的时候是不是把相应的参数也进行封装?如果不是,那么参数的传递在整个过程当中是怎么实现的呢?
|
|