分類里面添加成員變量撤嫩, 分類里面是不能直接添加成員變量的女责,但是可以通過runtime間接添加成員變量膘流。
? ? 為什么不能添加:
? ? 當(dāng)你給分類設(shè)置屬性的時(shí)候,分類不會(huì)給這個(gè)屬性生成_XX
的成員變量怎燥,因?yàn)榉诸惖慕Y(jié)構(gòu)中category_t的結(jié)構(gòu)體中,只能存儲(chǔ)蜜暑,屬性铐姚,方法、協(xié)議信息等肛捍,并沒有能夠存放成員變量的位置隐绵。
? ? 添加成員變量
- (void)setWeight:(double)weight{
? ? objc_setAssociatedObject(self, @selector(weight), @(weight), OBJC_ASSOCIATION_ASSIGN);
}
- (double)weight{
? ? return [objc_getAssociatedObject(self, @selector(weight)) doubleValue];
}
參數(shù)里面的self和@selector(weight))? 都是關(guān)聯(lián)對(duì)象內(nèi)部用來做key用的