本篇文章给大家谈谈轻松掌握iOS运行时:一招实现核心技能,以及对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。
runTime.gif 使用起来也非常简单:
导入#import "TFRuntimeManager.h" 头文件
1、获取所有属性名,例如获得UIButton的属性变量
NSArray *list=[TFRuntimeManager TF_getAllIvarWithClass:[UIButton 类]];
2、获得所有方法名,例如获得UIButton的方法名称
NSArray *list=[TFRuntimeManager TF_getAllMethodWithClass:[UIButton 类]];
3、交换两个方法,例如将UIButton里面的setTitle:forState:方法与当前类中的setTitleName: withState:方法交换
[TFRuntimeManager TF_exchangeMethodSourceClass:[UIButton类] sourceSel:@selector(setTitle:forState:) targetClass:[自身类] targetSel:@selector(setTitleName: withState:)];
4、取代某个方法,例如将UIButton里面的setTitle:forState:方法替换为当前类中的setTitleName: withState:
[TFRuntimeManager TF_replaceMethodSourceClass:[UIButton 类] sourceSel:@selector(setTitle:forState:) targetClass:[self 类] 60@selector(setTitleName: withState:)];
5、字典转模型,例如将dic的内容转换为TFChangeModel模型对象
NSDictionary *dic=@ {@"name":self.name.text,
@"性别":self.gender.text,
@"年龄":self.age.text};
TFChangeModel *模型=[TFRuntimeManager TF_modelWithDict:dic model:[TFChangeModel 类]];
6、归档解档,例如将TFChangeModel归档解档
//创建路径
NSString *documentPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject];
NSString *filePath=[documentPath stringByAppendingPathComponent:@"TFChangeModel.plist"];
TFChangeModel *模型=[[TFChangeModel 分配] init];
model.name=@"张三";
model.gender=@"男";
模型.年龄=@"25";
//档案
BOOL 结果=[TFRuntimeManager TF_archive:[模型类] model:model filePath:filePath];
//解压
模型=[TFRuntimeManager TF_unarchive:[TFChangeModel 类] filePath:filePath];这些是我的一些包裹。主要实现在TFRuntimeManager类中,可以快速使用runtime。可以下载demo查看具体实现:https://github.com/zhangyqyx/runtime
最后我想补充一点,使用runtime来添加分类中的属性
1.导入头文件#import
2.声明属性
/**标题*/
@property(非原子,强)UILabel *标题; 3.声明一个键值
静态NSString *TFTitleKey=@"TFTitleKey";4.重写set 和get 方法
//获取方法
- (UILabel *)标题{
返回objc_getAssociatedObject(self, TTitleKey);
}
//设置方法
- (void)setTitle:(UILabel *)标题{
【轻松掌握iOS运行时:一招实现核心技能】相关文章:
2.米颠拜石
3.王羲之临池学书
8.郑板桥轶事十则
用户评论
行吗?赶紧分享!
有8位网友表示赞同!
厉害了,这么高效!
有13位网友表示赞同!
一行代码就能学到iOS运行时知识?也太简单了吧
有17位网友表示赞同!
我要试试看能不能真的实现!
有18位网友表示赞同!
我感觉这篇文章会很实用啊!
有9位网友表示赞同!
给我一个关键词的学习范围,让我感受一下吧。
有10位网友表示赞同!
这代码一定非常简洁明了!
有16位网友表示赞同!
我一直在想办法深入了解iOS运行时机制,这个方法很有吸引力!
有11位网友表示赞同!
求详细步骤啊!可以一步一步教吗?
有11位网友表示赞同!
感觉这能解开很多开发疑惑啊。
有7位网友表示赞同!
这个代码真的只是一行吗?太厉害了!
有17位网友表示赞同!
好久没有看到这么惊艳的iOS分享了!
有9位网友表示赞同!
我现在刚开始学习iOS开发,这种方法是不是太高级了?
有5位网友表示赞同!
能否先解释一下什么是 iOS runtime 知识呗?
有20位网友表示赞同!
这个文章能帮我在iOS开发中解决哪些实际问题呢?
有18位网友表示赞同!
希望作者能够详细介绍代码的讲解以及应用场景!
有16位网友表示赞同!
这个方法是不是可以适用于其他移动平台吗?
有14位网友表示赞同!
学习iOSruntime一直是我的目标,终于找到好资料了!
有9位网友表示赞同!
运行时机制是 iOS 开发中必不可少的知识点。
有19位网友表示赞同!
真希望能看到更多关于 iOS Runtime 的内容!
有13位网友表示赞同!
iOS开发真是充满乐趣。
有20位网友表示赞同!