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

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

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

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

相关文章

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

    分类是可以声明属性的,但不会生成成员变量和实现setter,getter方法,所以要用运行时机制来实现这个属性的s...

  • ios分类添加属性

    为什么分类不能添加属性 结构体没有属性列表:这也就是为什么分类不能添加属性的本质原因。 属性是什么 生成实例变量 ...

  • iOS 底层 day07 Category上的关联对象

    一、本文解答的问题 1. 为什么类中添加属性可以赋值取值,而分类中添加的属性却不能直接赋值取值呢? 假设添加属性的...

  • 百度iOS面试题

    1.属性的本质,分类为什么不能直接添加属性?要怎么解决? 2.GCD和NSOperation区别? 3.table...

  • 分类(Category)

    分类为什么只能添加方法,不能添加属性呢? 因为在分类中添加@property添加属性的时候,没有生成带下划线的成员...

  • iOS分类(category)为什么不能直接添加属性?

    从定义分析 先看一下分类的定义: 再看下 Class 的定义: 对比可以发现 category 中少了 struc...

  • runtime 分类不能添加属性

    分类不能添加属性,类别可以,添加runtime之后,可以添加属性

  • Category-关联对象

    分类添加属性 Category能否添加成员变量?如果可以,如何给Category添加成员变量?不能直接给Categ...

  • 在iOS中分类和类中添加属性和方法的区别

    分类和类都可以添加方法和属性 属性分类通过runtime添加属性类直接添加 方法添加方式一样 生成 类中生成的有:...

  • Category 用runtime 关联对象

    如何给NSArray添加一个属性(不能使用继承)?不能用继承,难道用分类?但是分类只能添加方法不能添加属性啊(Ca...

网友评论

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

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