iOS分类中通过runtime添加动态属性
来源:互联网 发布:蒙泰软件排版教程 编辑:程序博客网 时间:2024/04/28 16:54
1.先创建一个类
@property (assign, nonatomic) NSInteger age;-(void)run;@end#import "Person.h"@implementation Person-(void)run{ NSLog(@"%s",__func__);}@end
2.定义分类
#import "Person.h"@interface Person (PersonExtention)@property (copy, nonatomic) NSString *name;-(void)saySex;@end#import "Person+PersonExtention.h"#import <objc/runtime.h>@implementation Person (PersonExtention)//定义常量 必须是C语言字符串static char *PersonNameKey = "PersonNameKey";-(void)setName:(NSString *)name{ /* OBJC_ASSOCIATION_ASSIGN; //assign策略 OBJC_ASSOCIATION_COPY_NONATOMIC; //copy策略 OBJC_ASSOCIATION_RETAIN_NONATOMIC; // retain策略 OBJC_ASSOCIATION_RETAIN; OBJC_ASSOCIATION_COPY; */ /* * id object 给哪个对象的属性赋值 const void *key 属性对应的key id value 设置属性值为value objc_AssociationPolicy policy 使用的策略,是一个枚举值,和copy,retain,assign是一样的,手机开发一般都选择NONATOMIC objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy); */ objc_setAssociatedObject(self, PersonNameKey, name, OBJC_ASSOCIATION_COPY_NONATOMIC);}-(NSString *)name{ return objc_getAssociatedObject(self, PersonNameKey);}-(void)saySex{ NSLog(@"%s----%@",__func__,self);}@end
3.总结:一般在分类中不能添加属性,但必须要用到的时候,可以用runtime机制来实现
0 0
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- iOS在分类中添加属性,运行时编程,objc runtime 动态增加属性
- RunTime应用--动态给分类添加属性
- IOS通过runtime给category添加属性
- iOS (Category)runtime动态添加属性
- runtime动态添加属性
- Runtime 动态添加属性
- runtime -- 动态添加属性
- iOS runtime机制实现给分类添加属性
- iOS Runtime 动态添加属性不能添加intrinsic类型
- Runtime之分类添加属性
- iOS开发------runtime关联对象(动态添加属性)
- iOS 在分类中添加属性
- 动态添加属性(Runtime)
- 添物不花钱学JavaEE(基础篇)-JSP
- spring boot应用启动原理分析
- Hbuider hybrid app开发之js常用方法
- 脚本语言,文本编辑器开发规范
- 排序算法讲解(一)
- iOS分类中通过runtime添加动态属性
- TextView使用Spannable设置复合文本
- HDOJ 2111 Saving HDU
- webView 返回按钮和关闭按钮
- python实现telnet
- LNMP----初步搭建
- hdu5738 多校2.5 几何+点集操作
- Java正则表达式入门
- sqilt()分离字符串