runtime学习笔记

UIView* v =self.view;

SELsel =NSSelectorFromString(@"setBackgroundColor:");

IMP setBkColor = [v methodForSelector:sel];

setBkColor(v,sel,[UIColorredColor]);

或者:

UIView* v =self.view;

SELsel =NSSelectorFromString(@"setBackgroundColor:");

void(*setSkinColor_Func) (id,SEL,UIColor*);

setSkinColor_Func = (void(*) (id,SEL,UIColor*))[vmethodForSelector:sel];

setSkinColor_Func(v,sel,[UIColorredColor]);


由此可见IMP就是一个指针, 在此是一个函数指针. 


2.一直都没有对这句代码进行太多的理解

这个也可以叫iOS的反射,

 1.通过类名创建对象。

2.通过反射方式,实现该对象指定函数。

[view performSelector:@selector(setBackgroundColor:) withObject:[UIColor redColor]];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容