iOS runtime之关联对象AssociatedObject的使用

在分类中添加属性,使用对象关联来实现:

例子:创建一个label的分类

#import

@interfaceUILabel (FontAndColor)

@property (nonatomic, copy) NSString *name;//分类中创建了一个name属性

-(void)WithFont:(int)font withColor:(UIColor*)color withTextAlig:(NSTextAlignment)texAli;

@end


#import "UILabel+FontAndColor.h"

#import

@implementationUILabel (FontAndColor)

static NSString *key = @"associatedObject";

-(void)WithFont:(int)font withColor:(UIColor*)color withTextAlig:(NSTextAlignment)texAli{

    self.font = [UIFont systemFontOfSize:font];

    self.textColor= color;

    self.textAlignment= texAli;

}

-(void)setName:(NSString*)name{//关联实现

    objc_setAssociatedObject(self, @selector(name), name, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

-(NSString*)name{//获取值

    return objc_getAssociatedObject(self, _cmd);

}

@end

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

相关阅读更多精彩内容

友情链接更多精彩内容