关联对象的作用:
- 可以在运行期间给某个对象增加属性
- 可以在运行期间获取某个对象的所有属性名称
- 交换方法
示例:
UIImageView+MyView.h
#import <UIKit/UIKit.h>
@interface UIImageView (MyView)
@property (nonatomic, copy) NSString *urlString;
@end
UIImageView+MyView.m
#import <objc/runtime.h>
//1 可以在运行期间给某个对象增加属性
//2 可以在运行期间获取某个对象的所有属性名称
//3 交换方法
@implementation UIImageView (MyView)
- (NSString *)urlString {
return objc_getAssociatedObject(self, "str");
}
- (void)setUrlString:(NSString *)urlString {
//可以在运行期间给某个对象增加属性
//关联对象
objc_setAssociatedObject(self, "str", urlString, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
@end