结论: 1、坚决杜绝为系统类做方法交换(见到【class_replaceMethod】格杀勿论!) 2、为系统类添加分类时候,属性和方法名必须加上【世上独一无二】的前缀,避免冲突和混淆。 之所以让我对上述行为恨之入骨是因为,今天为了一个bug,我花了将近半天时间苦苦追寻原因。 我只是使用了一个简简单 ...
分类:
其他好文 时间:
2018-07-31 19:36:44
阅读次数:
163
Objective
C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。
(1)在运行时对函数进行动态替换 : class_replaceMethod
使用该函数可以在运行时动态替换某个类的函数实现,这样做有什么用呢?最起码,可以实现类似win...
分类:
其他好文 时间:
2016-07-16 11:49:00
阅读次数:
269
Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。 目录: (1)使用class_replaceMethod/class_addMethod函数在运行 ...
分类:
其他好文 时间:
2016-04-28 11:53:57
阅读次数:
232
最近在学习OC运行时(runtime),测试了一个函数class_replaceMethod,具体如下:IMPoriginalMethod;
NSString*CustomUppercaseString(idSELF,SEL_CMD){
NSLog(@"BeginConverting。。。");
NSString*result=originalMethod(SELF,_CMD);
NSLog(@"EndConverting。。。");
returnre..
分类:
其他好文 时间:
2015-10-08 18:30:05
阅读次数:
664
前言: Objective C的runtime技术功能非常强大,能够在运行时获取并修改类的各种信息,包括获取方法列表、属性列表、变量列表,修改方法、属性,增加方法,属性等等,本文对相关的几个要点做了一个小结。目录:(1)使用class_replaceMethod/class_addMethod...
分类:
其他好文 时间:
2015-04-28 11:12:35
阅读次数:
147