我创建了一个没有任何实现的 NSObject
子类,并将其命名为“WebView”。
在我的代码中,我需要能够使用 NSClassFromString
动态实例化此类的对象。
虽然它看起来像是一件微不足道的工作,但我对这个特定的类名“WebView”有疑问。
它看起来像 NSClassFromString()
对于这个特定的类名是失败的,但是使用 lldb 我可以打印 class1 和 class2 的描述,并且两者都显示“WebView”。
还有其他人遇到同样的问题吗?是否有一些禁止类名的列表,例如实例变量等?
@interface WebView : NSObject
@end
@implementation WebView
@end
@implementation ViewController
- viewDidLoad {
Class class1 = [WebView class];
Class class2 = NSClassFromString(NSStringFromClass(class1));
NSAssert(class1 == class2, @"Classes not equal"); // FAIL
}
@end
还有一个例子:
[class1 new]; // OK
[class2 new]; // EXC_BAD_ACCESS (code=2, address=0x0)
最佳答案
当我尝试分配 WebView 时。它查看苹果的内部框架,如图所示。
关于ios - iOS 的 WebView 禁止类名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21846938/