查看runtime.h里面,找到了objc_class这个结构体的定义。
在各种成员中,我们有这个:-
结构 objc_method_list **methodLists
我们肯定需要知道一个类有哪些所有方法, 但是方法列表应该没问题,但为什么我们有“列表”?
为什么不只是一个列表?
此外,任何人都可以指定,方法是从该列表的父类(super class)部分继承的,还是我们通过指向父类结构的父类(super class)指针获取它们。
最佳答案
这是我对 struct objc_method_list **methodLists 的详细调查:http://blog.csdn.net/jasonblog/article/details/7303618
简而言之,methodLists 默认存储实例方法的 SEL-IMP 映射。在这种情况下,它只有一个列表。
正如名称“methodLists”所暗示的那样,它可以包含多个列表。如果你给一个类添加了一个类别,运行时系统会在methodLists中多插入一个列表,指向该类别的方法列表。
几个月前我试图回答这个问题,但当时由于网络问题所以放弃了我的回答。现在我又遇到它了:)
关于objective-c - 什么是结构 objc_class 的 methodLists 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8847146/