Runtime之分类添加属性

来源:互联网 发布:全球第一大社交网络 编辑:程序博客网 时间:2024/04/20 05:01

众所周知分类没办法添加属性,所以只能利用Runtime来添加属性变量

#import "NSObject+cate.h"#import <objc/runtime.h>@implementation NSObject (cate)static char *key = "name";// set- (void)setName:(NSString *)name {//    OBJC_ASSOCIATION_ASSIGN = 0,    assign 策略//    OBJC_ASSOCIATION_RETAIN_NONATOMIC = 1, retain 策略//    OBJC_ASSOCIATION_COPY_NONATOMIC = 3,  copy 策略//    OBJC_ASSOCIATION_RETAIN = 01401,       //    OBJC_ASSOCIATION_COPY = 01403        /*     id 给那一个对象添加属性     key  属性所对应的key     name 需要赋值的属性     cache 策略     */    objc_setAssociatedObject(self, key, name, OBJC_ASSOCIATION_COPY_NONATOMIC);}//get- (NSString *)name {    return  objc_getAssociatedObject(self, key);}

需要注意的是set方法跟get方法需要用同一个key来取值。

0 0