一直以为iOS里面的类别只能添加方法,不能添加属性。
今天无意中发现,利用动态运行时里面的关联,可以给类别添加属性。代码如下
#import <UIKit/UIKit.h>
@interface UIButton (Rayli)
@property (nonatomic,retain)NSString * str1;
@end
#import "UIButton+Rayli.h"
#import <objc/runtime.h>
static void * RayliStr;
@implementation UIButton (Rayli)
-(void)setStr1:(NSString *)str1
{
objc_setAssociatedObject(self, &RayliStr, str1, OBJC_ASSOCIATION_COPY);
}
-(NSString *)str1
{
return objc_getAssociatedObject(self, &RayliStr);
}
@end