Interface Builder文件中的未知类信息

就像在标题中,我得到了一个疯狂的按摩,我无法处理它

Unknown class info in Interface Builder file. 

每当我运行我的项目时,一些疯狂的错误将出现或一些酒吧消失。 有谁知道该怎么办?

试试这个,按顺序:

  1. 产品 – >在Xcode中清洁
  2. 从模拟器或设备中删除应用程序
  3. 重新启动Xcode
  4. (Build&)再次运行

如果这样做没有帮助,那么您可能需要参考笔尖或故事板中需要手动查找和删除的类。

警告可能是因为您已经为其中一个UIView子类指定了删除/删除的自定义类名称。 为了解决这种情况,

 Open interface builder class as Source Code by right clicking on it (Open As -> Source Code). Find your unknown class name in the source file. And handle accordingly. 

它为我工作。

看到我的答案https://stackoverflow.com/a/29013058/784318

我今天使用Swift遇到了这个问题。

我把Model.h + Model.mModel.swift 。 该对象用于Interface Builder中的class = Model

只要我replace了对象,就不能再加载这个类了。

我所要做的就是把IB中的类引用从

 Class = Model Module = 

 Class = Model Module = <TARGETNAME> 

您将在构build设置中find<TARGETNAME> 。 这也是在你生成的Swift-Header中显示的名字: #import "TARGETNAME-Swift.h"

如果您从Build Phases / Compile Sources中删除了ClassName.m,也会发生这种情况

我会重新解决这个问题,并从我的最后提出一些背景知识,然后提供解决scheme:

我创build了一个自定义的Swift框架,并将框架项目导入到工作区中。 然后,我将该框架作为Swift应用程序的目标依赖项。 最后,我从Interface Builder的框架中引用了一个类。

我不断得到类没有find错误,我注意到在debugging器中,它的输出类是损坏的/未加载的ObjC对应的..

解决scheme

只需将您的框架头添加到您的ObjC桥接头:

 #import <MazKit/MazKit-Swift.h> // In my case, MazKit 

现在,这些符号被导出,你可以通过cmd +点击头本身来validation,你会看到mangled / unmangled类的名字。

当您在界面生成器中将视图或控制器自定义为该类后,更改视图名称和视图控制器类时,我倾向于看到这些types的错误。 我会通过你的观点和控制器在你的笔尖或故事板,看看你的自定义类是否仍然存在,并相应匹配。

当您重命名或删除底层代码而不更新IB文件时,您将遇到与IB文件有关的问题。 在将它们链接到Interface Builder中的对象后,删除或更改IBOutlet的名称时会发生类似的问题。 除非您明确地删除它,否则您仍然可以在Interface Builder中获得参考。

最后,您可以将IB文件视为文本文件。 这是一个xml文档,你将看到所有的类的引用。 你可以看看有没有可能不存在于你的项目中的任何类。

项目 – >常规 – >部署信息 – >主界面< – 清除此字段。

看来你已经删除了文件Main(Storyboard),但是你仍然可以在项目属性中引用它。