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);
跟深的理解请看链接
网友评论