美文网首页
iOS runtime之关联对象AssociatedObject

iOS runtime之关联对象AssociatedObject

作者: 逆世界开发者 | 来源:发表于2018-08-28 20:32 被阅读0次

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

例子:创建一个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

相关文章

  • iOS runtime之关联对象AssociatedObject

    在分类中添加属性,使用对象关联来实现: 例子:创建一个label的分类 #import@interfaceUILa...

  • 笔记 - Runtime(征服面试官)

    什么是runtime? 平时项目中有用过么? 一、利用关联对象(AssociatedObject)给分类添加属性 ...

  • Runtime 之 使用场合及OC中的动态性

    Runtime的使用场合 利用关联对象(AssociatedObject)给分类添加属性 遍历类的所有成员变量(修...

  • 关联对象 AssociatedObject

    主要包含两个方面内容: 使用关联对象为已经存在的类添加属性 关联对象在底层OC中的实现 @property可以说...

  • AssociatedObject关联对象

    基本用法 以下是几种不同key的写法 关联对象的原理 关联对象不是存储在对象本身的内存中的,它被保存在一个全局的A...

  • iOS~runtime之关联对象

    什么是runtime? RunTime又叫运行时。OC就是运行时机制,也就是在运行时候的一些机制,其中最主要的是消...

  • iOS 基础知识之关联对象

    简介 associatedObject又称关联对象,把一个对象关联到另外一个对象身上,使两者能够产生联系。关联对象...

  • iOS runtime 关联对象

    最近在看runtime的相关知识,感觉里面东西还蛮多的,反正感觉runtime被戴上了很多高大上的帽子。查看了很多...

  • iOS runtime 关联对象

    关联对象 Associated Object 顾名思义,就是把一个对象关联到另外一个对象身上。 关于关联对象,ru...

  • iOS Runtime特性之关联对象

    前言 现在你准备用一个系统的类或者是你写的类,但是这个类并不能满足你的需求,你需要额外添加一个属性。一般解决办法要...

网友评论

      本文标题:iOS runtime之关联对象AssociatedObject

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