三、Objective-C 2.0新特性
eg.1. static char overviewKey;
NSArray *array = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three",nil];
NSString *overview = [[NSString alloc] initWithFormat:@"%@",@"First three numbers"];
objc_setAssociatedObject (
array,
&overviewKey,
overview,
OBJC_ASSOCIATION_RETAIN;
);
[overview release]; //overview有效
[array release];// array被释放了,overview也就被释放,所以运行异常
NSString *associatedObject = (NSString *)objc_getAssociatedObject(array, &overview);//从array中查询关键字overview;
objc_setAssociatedObject(array, &overviewKey, nil, OBJC_ASSOCIATION_ASSIGN);// 被关联对象设置为nil,后面的关联策略就没有意义;
说明:objc_setAssocitatedObject创建两个对象之间的关联;包含4个关键字:
array : 源对象;
&overviewKey : 关键字;
overview : 关联对象;
OBJC_ASSOCIATION_RETAIN : 约束策略;