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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 重点掌握 3 类对象和方法 对象就是一个物体 类的独特存在就是一个实例,对实例进行操作叫做方法。方法可以应用于类或...
    Coder大雄阅读 1,285评论 0 2
  • 分类中是可以为一个类添加属性的,但是一定做不到添加成员变量,不要混淆了成员变量和属性的概念.只是说现在Xcode自...
    CoderSC阅读 1,833评论 0 4
  • 1. 使用 #import 相对c的 include 是防止头文件的重复导入 2. NSLog 相对于 print...
    迎风起飞的猪阅读 1,780评论 6 9
  • 这章我们接着来介绍JQuery选择器。 1、基本选择器 2、层次选择器 3、过滤选择器(重点) 3.2内容过滤...
    _章鱼丸子阅读 137评论 0 1
  • 感赏自己能将自己学到的理念运用到学生身上。为了让学生增强自信心,引导学生做自我感赏,教他们先学会肯定自我,再学会欣...
    扮好自己的角色阅读 131评论 0 1