Category能否给已有类添加新的属性
来源:互联网 发布:了解算法看哪本书 编辑:程序博客网 时间:2024/06/07 00:00
先说结论。常规category是用来添加函数的,并不能添加属性。但是利用runtime中objc_setAssociatedObject等方法可以生成关联对象,进而实现添加属性的需求。
接下来上代码。
.h文件
#import <UIKit/UIKit.h>@interface UIView (something)@property (nonatomic,copy)NSString *something;@end
.m文件
#import "UIView+something.h"#import <objc/runtime.h>static const void *somethingKey = &somethingKey;@implementation UIView (something)//@dynamic something;-(void)setSomething:(NSString *)something{ objc_setAssociatedObject(self, somethingKey, something, OBJC_ASSOCIATION_COPY_NONATOMIC);}-(NSString *)something{ return objc_getAssociatedObject(self, somethingKey);}@end
关键代码为objc_setAssociatedObject
以及objc_getAssociatedObject
两个函数。
0 0
- Category能否给已有类添加新的属性
- 给Category添加属性
- iOS 给category添加属性的小技巧
- category 给IOS原生类添加属性
- 给分类(Category)添加属性
- IOS通过runtime给category添加属性
- 用Category给类中添加属性
- 给分类(Category)添加属性
- 给分类(Category)添加属性
- 给分类(Category)添加属性
- 给分类(Category)添加自定义属性
- iOS中OC给Category添加属性
- 给分类(Category)添加属性
- iOS 用宏在category里给对象添加属性
- iOS 用宏在category里给对象添加属性
- 用Category方式给UITapGestureRecognizer添加Tag属性
- 给category增加属性
- 给category增加属性
- poj 2115 C Looooops(扩展欧几里德)
- js addEventListener详解
- C#预编译符
- HDU-5783 Divide the Sequence(贪心水题)
- HDU 1050(贪心)
- Category能否给已有类添加新的属性
- Tensorflow 增加新的操作 op
- PopupWindow进出动画
- 彩印包装印刷行业erp-轻松、易用
- 常见问题总结篇三、 IOS绘制 1 像素边框
- 快速排序实现
- 数据库事务隔离级别
- GC --编程员的福利
- CodeSmith7安装包+破解工具(DLL/BLL/ENTITY生成工具)