NSString 与 Class/Protocol/SEL 相互转化

//NSString 与 Class 相互转化

Class NSClassFromString (NSString *aClassName);

NSString * NSStringFromClass (Class aClass);

 

//NSString 与 Protocol 相互转化

NSString * NSStringFromProtocol (Protocol *proto);

Protocol *NSProtocolFromString (NSString *namestr);

 

 

//NSString 与 SEL 相互转化

NSString *NSStringFromSelector (SEL aSelector);

SEL NSSelectorFromString (NSString *aSelectorName);

 

 

我曾经遇到过,在一个页面中可以有9个选择去push 出不同的页面。这样的情况下,如果每个控制器的 push 我都要按照如下代码来写,这岂不是要累死自己, 所以我找了找一个简单的方法。

RegisterViewController *registerVC = [[RegisterViewController alloc] init];
[self.navigationController pushViewController:registerVC animated:YES];

就是利用了NSString 与 Class 的转化:

//将所有控制器类的字符串放入数组 array中
NSArray *arry = [NSArray arrayWithObjects:@"WantToLoanViewController",@"WantToSaleBusinessViewController",@"GetBusinessEverydayViewController",@"LoanGroupViewController",@"PledgeGroupViewController",@"CooperationViewController",@"ReconmmendForMeViewController",@"ActivityAnnouncementsViewController",@"ContactUsViewController", nil]; //取对应类名 NSString *className = [array objectAtIndex:indexPath.row]; Class Representative = NSClassFromString(className); //创建 Controller 并 push UIViewController *VC = [[Representative alloc] init]; [self.navigationController pushViewController:VC animated:YES]; 



转载自:http://blog.csdn.net/wangyanchang21/article/details/50732572

 

转载于:https://www.cnblogs.com/nelsen-chen/p/8437055.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值