首先要导入
<objc/objc-runtime.h>
主要用于在本页面中 类与类之间的通信,
采用关联的模拟。
如 UILabel *testLabel = [UILabel alloc ]init];
objc_setAssociatedObject(testLabel,@"TestKey",@"Value",OBJC_ASSOCIATION_COPY_NONATOMIC);
关于参数 testLabel:一般是绑定一个控件 可以是属于UIAlertView、UILabel、UITextField..
TestKey:一般是给定一个Key值,在获取关联值的时候 这个key值是关键.
Value:绑定在控件和Key值上.
OBJC_ASSOCIATION_COPY_NONATOMIC:可以理解为该value的属性的声明值<个人观点>,该属性的意思是 <nonatomic,copy>.该参数的有几个协议选择.OBJC_ASSOCIATION_ASSIGN:可以理解为<assign>.OBJC_ASSOCIATION_RETAIN_NONATOMIC:如同<nonatomic,retain>,OBJC_ASSOCIATION_RETAIN:如同<retain>,OBJC_ASSOCIATION_COPY:如同<copy>;
在本类中其它的方法中
objc_getAssociatedObject(testLabel,@"TestKey");
关于参数 testLabel:必须与上面的控件地址一致
TestKey:关键key值 如想获取对应的value,该参数必须是对应的key值.
该方法返回一个id值 这个值可能是NSString类型的 可能是NSArray.该值应与绑定的时候的值的类型一致.
如果不需要用到该属性 或者想删除与该控件绑定的value值
objc_removeAssociatedObects(testLabel)
关于参数 testLabel:必须与上面的控件地址一致