美文网首页iOS开发学习
为什么分类不能直接添加属性?

为什么分类不能直接添加属性?

作者: BEYOND黄 | 来源:发表于2017-07-15 15:11 被阅读32次

    分类是可以声明属性的,但不会生成成员变量和实现setter,getter方法,所以要用运行时机制来实现这个属性的setter,getter方法。分类不是一个类,它不能添加成员变量,它只是通过运行时来动态向类里添加方法和属性。综上所述,分类中是可以为一个类添加属性的,但是一定做不到添加成员变量。在分类里使用@property声明属性,只是将该属性添加到该类的属性列表,并声明了setter和getter方法,但是没有生成相应的成员变量,也没有实现setter和getter方法。所以说分类不能添加属性。但是在分类里使用@property声明属性后,又实现了setter和getter方法,那么在这个类以外可以正常通过点语法给该属性赋值和取值。就是说,在分类里使用@property声明属性,又实现了setter和getter方法后,可以认为给这个类添加上了属性。

    相关文章

      网友评论

        本文标题:为什么分类不能直接添加属性?

        本文链接:https://www.haomeiwen.com/subject/lnjkhxtx.html