工作生活

(四)iOS 反射机制的简单使用

2019-07-03  本文已影响0人  种提莫的蘑菇

1.在开发中会有调用某个接口,然后通过返回的数据告诉app端该怎么跳转,并执行哪个方法的需求,这时候就很好的使用到OC的反射机制。

从接口中获取要跳转的类名,和要执行的方法名。

Class class = NSClassFromString(@"DemoVC");

UIViewController *vc = [[class alloc] init];

[self.navigationController pushViewController:vc animated:YES];

//以上就是使用反射机制,拿到要跳转的vc。

SEL selector = NSSelectorFromString(@"funName");

[vc performSelector:selector];

//以上就是根据字符串获取方法名,但是有个问题就是会报警告performSelector may cause a leak because itsselector is unknown。

使用以下方法替代即可

IMP imp = [vc methodForSelector:selector];

void (*func)(id,SEL) = (void*)imp;

func(vc, selector);

跟深的理解请看链接

上一篇下一篇

猜你喜欢

热点阅读