欢迎来真孝善网,为您提供真孝善正能量书籍故事!

轻松掌握iOS运行时:一招实现核心技能

时间:11-08 神话故事 提交错误

本篇文章给大家谈谈轻松掌握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 *)标题{

用户评论

雨后彩虹

行吗?赶紧分享!

    有8位网友表示赞同!

花花世界总是那么虚伪﹌

厉害了,这么高效!

    有13位网友表示赞同!

逾期不候

一行代码就能学到iOS运行时知识?也太简单了吧

    有17位网友表示赞同!

冷落了♂自己·

我要试试看能不能真的实现!

    有18位网友表示赞同!

凉话刺骨

我感觉这篇文章会很实用啊!

    有9位网友表示赞同!

抚笙

给我一个关键词的学习范围,让我感受一下吧。

    有10位网友表示赞同!

该用户已上天

这代码一定非常简洁明了!

    有16位网友表示赞同!

半梦半醒i

我一直在想办法深入了解iOS运行时机制,这个方法很有吸引力!

    有11位网友表示赞同!

此刻不是了i

求详细步骤啊!可以一步一步教吗?

    有11位网友表示赞同!

久爱不厌

感觉这能解开很多开发疑惑啊。

    有7位网友表示赞同!

枫无痕

这个代码真的只是一行吗?太厉害了!

    有17位网友表示赞同!

繁华若梦

好久没有看到这么惊艳的iOS分享了!

    有9位网友表示赞同!

雪花ミ飞舞

我现在刚开始学习iOS开发,这种方法是不是太高级了?

    有5位网友表示赞同!

可儿

能否先解释一下什么是 iOS runtime 知识呗?

    有20位网友表示赞同!

情深至命

这个文章能帮我在iOS开发中解决哪些实际问题呢?

    有18位网友表示赞同!

浅嫣婉语

希望作者能够详细介绍代码的讲解以及应用场景!

    有16位网友表示赞同!

权诈

这个方法是不是可以适用于其他移动平台吗?

    有14位网友表示赞同!

凉城°

学习iOSruntime一直是我的目标,终于找到好资料了!

    有9位网友表示赞同!

汐颜兮梦ヘ

运行时机制是 iOS 开发中必不可少的知识点。

    有19位网友表示赞同!

暖瞳

真希望能看到更多关于 iOS Runtime 的内容!

    有13位网友表示赞同!

我的黑色迷你裙

iOS开发真是充满乐趣。

    有20位网友表示赞同!

【轻松掌握iOS运行时:一招实现核心技能】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活