setAssociatedObject

关联: 是把两个对象相互关联起来,其中的一个对象作为另一个的对象的一部分,Mac OS X V10.6以后才能使用使用关联,我我们可以不用修改类的定义而未其对象增加储存空间。关联是基于关键字的,因此可以为任何对象增加任意多多关联,每个都使用不同多关键字即可。创建要使用到OC的运行时函数:objc_setAssociatedObject,该函数需要四个参数:原对象;

关键字;关联的对象和一个关联策略(关联策略表明了相关的对象是通过赋值,,保留引用还是复制的方式进行关联;这种关联是原子的还是非原子的);

关键字是一个void类型的指针,必须唯一,一般都会采用静态变量

//demo 把一个字符串关联到一个数组//static char overviewKey;NSArray *array = [[NSArray alloc] initWithObjects:@"test",nil];NSString *overview = [NSString stringWithFormat:@"%@",@"test number"];objc_setAssociatedObject(array, @"overviewKey", overview, OBJC_ASSOCIATION_RETAIN);NSString *associatedObject = objc_getAssociatedObject(array,@"overviewKey");

要么读书、要么旅行,灵魂和身体,必须有一个在路上。

setAssociatedObject

相关文章:

你感兴趣的文章:

标签云: