分类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
@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
相关文章推荐
- Runtime消息机制,交换方法,动态添加方法,分类添加属性
- 笔记:利用 runtime 交换方法、给分类动态添加属性
- flash as3.0动态添加属性和方法
- javascript动态添加、修改、删除对象的属性和方法
- 【原】iOS动态性(一):动态添加属性的方法——关联(e.g. 向Category添加成员变量)
- 分类中添加属性(理论上分类不能添加属性,可以通过两个方法添加)
- ios动态添加属性的几种方法
- flash as3.0动态添加属性和方法
- javascript动态添加、修改、删除对象的属性和方法
- Javascript 创建类并动态添加属性及方法
- iOS中动态添加属性的方法——关联(e.g. 向Category添加成员变量)
- Runtime-动态创建类添加属性和方法
- javascript动态添加、修改、删除对象的属性和方法
- C# 类动态添加属性、方法
- groovy运行期间动态添加属性和方法
- groovy运行期间动态添加属性和方法
- javascript动态添加、修改、删除对象的属性与方法详解
- C# 类动态添加属性、方法
- iOS分类中通过runtime添加动态属性
- C# 类动态添加属性、方法