原因是,在类别中可以添加属性,却无法添加成员变量,该列别中无法用常规方法实现get和set方法。
此时是应该用runtime去写get和set。
使用objc_setAssociatedObject/objc_getAssociatedObject实现添加属性,其实就是get/set方法。
在类别的.h方法中添加属性property。
@interface UILabel (my)
@property(nonatomic,strong)NSObject*property;
@end
在.m文件中写get/set方法
@implementation UILabel (my)
- (NSObject*)property
{
returnobjc_getAssociatedObject(self,@selector(property));
}
- (void)setProperty:(NSObject*)value
{
objc_setAssociatedObject(self,@selector(property), value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
这样就给label添加了property属性。