您的位置:1010cc时时彩经典版 > 操作系统 > 缘何分类不能加多属性,iOS分类不可能增添属性

缘何分类不能加多属性,iOS分类不可能增添属性

发布时间:2019-08-09 11:31编辑:操作系统浏览(102)

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

    在分类里使用@property声明属性,只是将该属性添加到该类的属性列表,并声明了setter和getter方法,但是没有生成相应的成员变量,也没有实现setter和getter方法。并且这里用点语法会报错,所以说分类不能添加属性。但是在分类里使用@property声明属性后,又实现了setter和getter方法,那么在这个类以外可以正常通过点语法给该属性赋值和取值。就是说,在分类里使用@property声明属性,又实现了setter和getter方法后,可以认为给这个类添加上了属性。来源: 还有一篇总结来源:

    在分类里使用@property声明属性,只是将该属性添加到该类的属性列表,并声明了setter和getter方...

    在分类里使用@property声明属性,只是将该属性添加到该类的属性列表,并声明了setter和getter方法,但是没有生成相应的成员变量,也没有实现setter和getter方法。并且这里用点语法会报错,所以说分类不能添加属性。但是在分类里使用@property声明属性后,又实现了setter和getter方法,那么在这个类以外可以正常通过点语法给该属性赋值和取值。就是说,在分类里使用@property声明属性,又实现了setter和getter方法后,可以认为给这个类添加上了属性。来源:

    在分类里使用@property声明属性,只是将该属性添加到该类的属性列表,并声明了setter和getter方法,但是没有生成相应的成员变量,也没有实现setter和getter方法。并且这里用点语法会报错,所以说分类不能添加属性。但是在分类里使用@property声明属性后,又实现了setter和getter方法,那么在这个类以外可以正常通过点语法给该属性赋值和取值。就是说,在分类里使用@property声明属性,又实现了setter和getter方法后,可以认为给这个类添加上了属性。来源:

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

    最近跟人交流时,提到一个问题,说iOS分类中不能添加属性。这里探讨一下不能添加的原因和添加的方法。
    首先,创建一个person类,代码如下:

    还有一篇总结来源:

    还有一篇总结来源:

    XGPerson.h

    #import <Foundation/Foundation.h>
    
    @interface XGPerson : NSObject
    /// 年龄
    @property (nonatomic, copy) NSString *age;
    /// 性别
    @property (nonatomic, copy) NSString *sex;
    
    - (void)text1;
    
    @end
    

    XGPerson.m

    #import "XGPerson.h"
    
    @implementation XGPerson
    
    - (void)text1 {
        NSLog(@"%s",__func__);
    }
    
    - (void)text2 {
        NSLog(@"%s",__func__);
    }
    @end
    

    在控制器里获取并打印该类的成员变量、属性和方法,代码如下:

    本文由1010cc时时彩经典版发布于操作系统,转载请注明出处:缘何分类不能加多属性,iOS分类不可能增添属性

    关键词: