iOS在分类中添加属性,运行时编程,objc runtime 动态增加属性
来源:互联网 发布:网站源码什么意思 编辑:程序博客网 时间:2024/04/29 22:39
Objective-C中,有类别可以在不修改源码的基础上增加方法;近排在看别人的开源代码时,发现还可以动态增加属性。而且是在运行时,太牛B了。
使用运行时库,必须要先引入 objc/runtime.h
可以使用的函数如下:
OBJC_EXPORT void objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)
这个函数
<span style="color:#ff0000;">OBJC_EXPORT id objc_getAssociatedObject(id object, const void *key)__OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_1);</span>
看一个类目(分类)和动态添加属性的例子:
UILabel+Associate.h
#import <UIKit/UIKit.h>@interface UILabel (Associate)- (void) setFlashColor:(UIColor *) flashColor;- (UIColor *) getFlashColor;@end
UILabel+Associate.m
#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
调用代码:
UILabel *lab = [[UILabel alloc] init]; [lab setFlashColor:[UIColor redColor]]; NSLog(@"%@", [lab getFlashColor]);
0 0
- iOS在分类中添加属性,运行时编程,objc runtime 动态增加属性
- objc runtime 动态增加属性
- objc runtime 动态增加属性
- objc runtime 动态增加属性
- objc runtime 动态增加属性
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- iOS分类中通过runtime添加动态属性
- 通过objc runtime 为类别(Category)动态增加属性
- KVO的使用以及 objc runtime 动态增加属性
- RunTime应用--动态给分类添加属性
- iOS 在分类中添加属性
- iOS 运行时runtime应用之二--在category中使用运行时API给类添加属性
- 类别添加属性,即runtime运行时添加属性(动态属性)
- iOS运行时-使用Runtime向Category中添加属性以及运行时介绍
- iOS (Category)runtime动态添加属性
- Notepad++插件!Finger Text一款标签代码替换和文本自动完成插件
- jquery中attr()方法介绍和用法
- WCF配置小结
- 怎样在php中使用PDF文档功能
- Saltstack--迭代同步文件夹里面的文件到客户端(实例)
- iOS在分类中添加属性,运行时编程,objc runtime 动态增加属性
- poj 1837 Balance (暴力dp)
- 最恶不过无能为力
- Codeforces Round #280 (Div. 2)
- 《Linux内核设计与实现》——补丁、开发和社区
- R语言:一个画面上画多个图形的方法
- c 语言里 类型转换那些事儿
- UITableView EGO 刷新
- VS2010 C/S模式winForm打包部署(生成安装包)图文教程