首页 > 代码库 > Category和Associative
Category和Associative
Category,类目,可以为已有的类添加新的方法,但是要想在Category里扩展属性就要使用Runtime的Associative,使用Runtime来添加类目的属性。
static void * MyObjectMyCustomPorpertyKey = (void *)@"MyObjectMyCustomPorpertyKey";
@implementation MyObject (ExtendedProperties)
- (id)myCustomProperty
{
return objc_getAssociatedObject(self, MyObjectMyCustomPorpertyKey);
}
- (void)setMyCustomProperty:(id)myCustomProperty
{
objc_setAssociatedObject(self, MyObjectMyCustomPorpertyKey, myCustomProperty, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
@end
以上即是使用Associative把self和myCustomProperty两个对象进行关联,从而达到为类目添加属性的目的。
objc_setAssociatedObject(self, KEY_TAGSTRING, nil,OBJC_ASSOCIATION_RETAIN_NONATOMIC); //可以用来断开Associative
Category和Associative
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。