使用NSClassFromString

本文探讨了iOS开发中使用NSClassFromString动态创建UIViewController对象的方法。与直接实例化类相比,此方法允许在不导入头文件的情况下创建类实例,且在类不存在时返回空对象而非崩溃。文章还介绍了如何通过设置-all_load来解决创建对象时可能出现的nil问题。

 UIViewController *vc = (UIViewController *)[[NSClassFromString(className)alloc] init]; 创建对象还有这种方式。


     id * homeVC  =【【NSClassFromString(HomeViewcontroller) alloc】init】与 HomeViewController * homecontroller = 【【HomeViewcontroller alloc】init】都会创建一个UIViewController类,从创建结果看,并没有什么本质区别,但是用NSClassFromString创建 当没有这个类的时候,程序不会崩溃,而只是返回一个空对象。而且用NSClassFromString创建不需要进行 #import,只要这个类存在就能正确创建,而且是动态创建,但是用该方法创建往往会出现nil,即使你工程中有你需要创建的类。那么解决方法之一:"-all_load"设置方式,选择MainProject.xcodeproject的MainProject(target) 在Build Setting中找到Other Link ... 添加上就可以了 。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值