runtime学习笔记

2015-06-04  本文已影响75人  零纪年

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]];

上一篇 下一篇

猜你喜欢

热点阅读