HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 检查NSClassFromString返回的nil值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们可以使用NSClassFromString创建一个类:

Class class = NSClassFromString(@"someClass");
id object = [[class alloc] init];
[object test];

这没问题.

如果字符串给出的类不存在,NSClassFromString将返回nil.

足够公平并且调用[object test];,当object为nil(因为class为nil)时不会引起任何问题.

作为一个实验,我将@“someClass”更改为其他不存在的东西.
通过记录class的值(当NSClassFromString返回nil时)它显示0x0.
随后我尝试更换为测试:

id object = [[class alloc] init];

以下逐个:

id object = [[Nil alloc] init];

id object = [[nil alloc] init];

id object = [[NSNull alloc] init];

只有id object = [[NSNull alloc] init];不会导致任何编译错误,但会在到达此行时导致崩溃:

[object test];

所以我的问题是,为什么我不能用nil或Nil替换类,但是当NSClassFromString返回nil并将其分配给Class类并调用此[[class alloc] init]时;会工作?上课也没关系.

为id object = [[Nil alloc] init]时的情况添加错误消息;或id object = [[nil alloc] init];被申请;被应用.

解决方法

nil是void *类型,而不是id.您无法向空格*发送消息.

NULL,Nil和nil是void *类型,因此可以分配给任何东西.如果nil是type id,那么你不能这样做:

char* foo = nil;

这不是一个有用的限制.

如果您确实要将消息发送到nil,则需要将其转换为正确的类型:

[(id)nil description];

大佬总结

以上是大佬教程为你收集整理的ios – 检查NSClassFromString返回的nil值全部内容,希望文章能够帮你解决ios – 检查NSClassFromString返回的nil值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。