只是想提供一种思路。
缘由:看到朋友的项目里面几千行if else 的判断,只是为了根据数据中不同的特征值,跳转特定页面,或者做些特定处理。
思路:动态的判断特征值,将方法或者对象的名称直接创建与特征值相同的名字。
例子:比如要根据获取到的数据(假设有几千种,比如cat,tiger,bird...),对cat,tiger,bird进行各种处理或者跳转不同的页面。那么 处理的方法可以命名为:
- (void)cat:(id)sender;
想要跳转的页面可以命名为:
@interface cat : UIViewController
@end
那么就可以这样做调用特定方法:
NSString *str = [NSString stringWithFormat:@"%@:",你得到的特征值];//你的方法名与之相同
SEL selector = NSSelectorFromString(str);
if([self respondsToSelector:selector]) {
[self performSelector:selector withObject:respone]
}
可以这样做跳转特定页面:
Class class = objc_getClass("你得到的特征值");//你的类名与其相同
id wantedVC = [class new];
if(id){
[self presentViewController:wantedVC animated:NO completion:nil];
}
这只是两个简单的小例子,提供一点点思路,抛砖引玉,如果你也有一些心得,请不吝赐教,我的邮箱:
tianyun1201@163.com