从runtime的角度看分类为什么不能添加属性
2018-11-08 本文已影响0人
编程_书恨少
- 首先看各种属性列表,成员变量列表,方法列表的打印,这里我比较懒就不自己截图了,代码我都写了,传也麻烦,就直接看这个帖子吧,https://blog.csdn.net/lixuezhi86/article/details/81713166,写的挺详细的。
2.我想说的是
2.1 在分类中添加属性,是会添加到属性列表中去的(属性列表并不在类结构中)
2.2在分类中添加属性,是不会产生_属性名的成员变量的
2.3在分类中添加属性,是不会在主类方法列表中生成setter和getter的
那提问:为什么分类中不能添加属性,使用runtime就可以添加呢??
有的解释说,类在编译期就已经固定了,所以是不能添加属性的。runtime添加的setter和getter也是在分类的methodList中添加了方法,而在类的ivarList中并没有添加成员变量。所以这种解释应该是靠谱的。