美文网首页
关联对象

关联对象

作者: 我真的不是张亮 | 来源:发表于2018-08-12 16:23 被阅读6次

    分类里面添加成员变量, 分类里面是不能直接添加成员变量的,但是可以通过runtime间接添加成员变量。

        为什么不能添加:

        当你给分类设置属性的时候,分类不会给这个属性生成_XX

    的成员变量,因为分类的结构中category_t的结构体中,只能存储,属性,方法、协议信息等,并没有能够存放成员变量的位置。

        添加成员变量

    - (void)setWeight:(double)weight{

        objc_setAssociatedObject(self, @selector(weight), @(weight), OBJC_ASSOCIATION_ASSIGN);

    }

    - (double)weight{

        return [objc_getAssociatedObject(self, @selector(weight)) doubleValue];

    }

    参数里面的self和@selector(weight))  都是关联对象内部用来做key用的

    相关文章

      网友评论

          本文标题:关联对象

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