关联对象

分类里面添加成员变量, 分类里面是不能直接添加成员变量的,但是可以通过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用的


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容