即使接口生成器是一个MyClass,我得到一个错误时启动应用程序。
当MyClass是库的一部分时,就会发生这种情况,如果直接在应用程序目标中编译该类则不会发生这种情况。
即使接口生成器是一个MyClass,我得到一个错误时启动应用程序。
当MyClass是库的一部分时,就会发生这种情况,如果直接在应用程序目标中编译该类则不会发生这种情况。
当前回答
这与Interface Builder没有任何关系,这里发生的是符号没有被Xcode从静态库中加载。要解决这个问题,你需要将-all_load -ObjC标记添加到项目(可能是目标)构建设置的其他链接器标记键。
由于Objective-C每个类只生成一个符号,我们必须通过使用-ObjC标志强制链接器加载类的成员,我们还必须通过添加-all_load链接器标志强制包含静态库中的所有对象。如果你跳过这些标志,你迟早会遇到无法识别的选择器错误,或者得到其他异常,就像你在这里观察到的一样。
其他回答
这个问题似乎并没有过时。
我在Xcode 8中也遇到了同样的问题,并解决了类似smilebot的问题:
在Xcode中以“源代码”的形式打开故事板文件: 搜索被引用的类&删除整段
customClass = UnrecognizedClassName”
再次以“interfacebuilder - storyboard”的形式打开你的故事板文件,重新构建你的应用程序。
在我的例子中,问题是一个死的IBOutlet链接。一旦这个问题解决了,一切又恢复了正常。
发生这种情况是因为.xib有一个陈旧的链接到旧的应用程序委托,它不再存在了。 我是这样修改的:
右键单击.xib并选择“打开为>源代码” 在这个文件中,搜索旧的App委托并将其替换为新的委托
我今天在Xcode 4下将我的aaLuminate应用程序转换为Universal时出现了这个错误。 这个应用程序基于实用工具模板,最初是在Xcode 3下构建的。
为了节省时间,我将iPhone主视图和Flipside视图复制到Universal应用程序上的适当名称。我遇到了“Interface Builder file中未知类x”错误。在我的案例中,XIB文件或目标中没有任何内容。
我还复制了aaLuminate-Info。plist文件跨越其他原因-这有一个旧的关键“主nib文件基名”设置为MainWindow。
只要我删除这个关键它修复了问题!
转到构建阶段->编译源代码并添加新的。m文件。