有时候需要给一个已知的类添加属性,除了定义子类,还可以使用Category,代码如下,主要使用runtime的objc_setAssociatedObject
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface UIView (VVV)
@property (strong, nonatomic) NSString* type;
@end
NS_ASSUME_NONNULL_END
#import "UIView+VVV.h"
#import <objc/runtime.h>
@implementation UIView (VVV)
//定义常量 必须是C语言字符串
static char *TYPE = "type";
-(void)setType:(NSString *)type{
objc_setAssociatedObject(self, TYPE, type, OBJC_ASSOCIATION_COPY_NONATOMIC);
}
-(NSString *)type{
return objc_getAssociatedObject(self, TYPE);;
}
@end