1.在開發(fā)中會有調(diào)用某個接口,然后通過返回的數(shù)據(jù)告訴app端該怎么跳轉(zhuǎn),并執(zhí)行哪個方法的需求,這時候就很好的使用到OC的反射機(jī)制。
從接口中獲取要跳轉(zhuǎn)的類名,和要執(zhí)行的方法名。
Class class = NSClassFromString(@"DemoVC");
UIViewController *vc = [[class alloc] init];
[self.navigationController pushViewController:vc animated:YES];
//以上就是使用反射機(jī)制,拿到要跳轉(zhuǎn)的vc。
SEL selector = NSSelectorFromString(@"funName");
[vc performSelector:selector];
//以上就是根據(jù)字符串獲取方法名,但是有個問題就是會報(bào)警告performSelector may cause a leak because itsselector is unknown。
使用以下方法替代即可
IMP?imp = [vc methodForSelector:selector];
void?(*func)(id,SEL) = (void*)imp;
func(vc, selector);
跟深的理解請看鏈接