您的位置:首页 > 编程语言 > Go语言

分类categories动态添加方法和属性

2017-07-04 11:36 274 查看
1.动态向NSObject中添加方法

@interface NSObject
(CategoryWithProperty)

@property
(nonatomic, strong) NSObject
*property;

@end

@implementation NSObject
(CategoryWithProperty)

-
(NSObject *)property {

return
objc_getAssociatedObject(self, _cmd);

}

-
(void)setProperty:(NSObject *)value {

objc_setAssociatedObject(self, @selector(property),
value, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

2.动态扩展属性

#import "UILabel+Associate.h"

#import <objc/runtime.h>

@implementation UILabel
(Associate) static char
flashColorKey;

-
(void) setFlashColor:(UIColor *) flashColor{

objc_setAssociatedObject(self,
&flashColorKey, flashColor, OBJC_ASSOCIATION_RETAIN_NONATOMIC);

}

-
(UIColor *) getFlashColor{

return
objc_getAssociatedObject(self, &flashColorKey);

}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: