NSClassFromString

ios NSClassFromString 返回空指针

风流意气都作罢 提交于 2019-12-10 08:56:31
原文地址: http://my.oschina.net/meiguizhinian/blog/476783 今天新建了一个 iOS 新工程,用到了 NSClassFromString 方法创建类, 无奈总是返回空指针. 花了一下午时间检查代码是否有写错,配置是否有问题,搜索这个问题该怎么解决.无奈都没有什么理想的结论.到了晚上的时候看到一个帖子说 other link flags 里面增加-all_load 属性.我一想,这不靠谱啊. 我以前都没有用过这个属性.我又想到这个工程是新建的,是不是这里面少了什么配置.比较了下以前的工程.增加了-ObjC 这个属性, 再跑一下,成功创建了. 在这里我把这个解决方法写下了,以便大家遇到了可以及时找到解决方法. 觉得有用请点个赞 🔽 来源: oschina 链接: https://my.oschina.net/u/2411912/blog/476783

NSClassFromString和NSStringFromClass

醉酒当歌 提交于 2019-12-10 08:25:17
NSClassFromString和NSStringFromClass   NSStringFormClass 这个不用说,看命名都应该知道吧。   NSClassFromString 将NSString转换成一个Class,如果不存在,返回一个nil。   正常来说,   id myObj = [[NSClassFromString(@"MySpecialClass") alloc] init];   和   id myObj = [[MySpecialClass alloc] init];   是一样的。但是,如果你的程序中并不存在MySpecialClass这个类,下面的写法会出错,而上面的写法只是返回一个空对象而已。   因此,在某些情况下,可以使用NSClassFromString来进行你不确定的类的初始化。   比如在iPhone中,NSTask可能就会出现这种情况,所以在你需要使用NSTask时,最好使用:   [[NSClassFromString(@"NSTask") .....]]   而不要直接使用[NSTask ...]这种写法。   NSClassFromString的好处是:   1 弱化连接,因此并不会把没有的Framework也link到程序中。   2 不需要使用import,因为类是动态加载的,只要存在就可以加载