就像在标题中我得到了疯狂的按摩,我无法处理它
Unknown class info in Interface Builder file.
每次我运行我的项目时,都会出现一些疯狂的错误,或者某些条形消失。有人知道该怎么办吗?
答案 0 :(得分:22)
按顺序尝试:
如果这没有帮助,您可能会引用一个必须手动查找和删除的笔尖或故事板中的类。
答案 1 :(得分:9)
警告可能是因为您已为其中一个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.
它对我有用。
答案 2 :(得分:3)
请参阅我对https://stackoverflow.com/a/29013058/784318
的回答我今天使用Swift遇到了这个问题。
我将课程
Model.h + Model.m
更改为Model.swift
。 此对象在Interface Builder中与class = Model
一起使用。一旦我更换了对象,就无法再加载该类。
我必须做的是改变IB中的类引用:
Class = Model Module =
到
Class = Model Module = <TARGETNAME>
您将在构建设置中找到
<TARGETNAME>
。它也是生成的Swift-Header中显示的名称:#import "TARGETNAME-Swift.h"
答案 3 :(得分:2)
通过使用“自定义类”面板,选中“从目标继承模块”(在“类和模块”行的正下方),我已经解决了这个问题(在使用Swift 4 / Xcode 10.1时)。
答案 4 :(得分:1)
在Interface Builder中将视图或控制器自定义为该类后,更改视图名称并查看控制器类时,我倾向于看到这些类型的错误。我会在您的笔尖或故事板中查看您的视图和控制器,以查看您的自定义类是否仍然存在并相应地匹配。
当您重命名或删除基础代码而不更新IB文件时,您将遇到IB文件的问题。在将它们链接到Interface Builder中的对象之后删除或更改IBOutlet的名称时会发生类似的问题。除非您明确删除它,否则您仍将在Interface Builder中拥有该引用。
最后,您可以将IB文件视为文本文件。这是一个xml文档,您可以在其中看到所有类引用。您可以看到项目中是否存在可能不存在的任何类。
答案 5 :(得分:1)
如果从Build Phases / Compile Sources
中删除ClassName.m,也会发生这种情况答案 6 :(得分:1)
我会用我的一些背景来重述问题,然后提供解决方案:
我创建了一个自定义Swift框架,并将框架项目导入工作区。然后,我使框架成为我的Swift应用程序的目标依赖项。最后,我在Interface builder中引用了一个类。
我一直得到类找不到错误,我注意到在调试器中它的输出类是被破坏/未编译的ObjC对应物..
解决方案:
只需将框架标题添加到ObjC桥接标题中:
#import <MazKit/MazKit-Swift.h> // In my case, MazKit
现在,导出符号,您可以通过cmd +点击标题本身来验证,然后您将看到错位/未编码的类名。
答案 7 :(得分:0)
项目 - &gt;一般 - &gt;部署信息 - &gt;主界面&lt; - 清除此字段。
您似乎已删除文件Main(Storyboard),但您仍然在项目属性中引用它。
答案 8 :(得分:0)
可能是在构建过程中未复制文件。转到“构建阶段”选项卡,然后检查副本捆绑资源以查看文件是否存在。如果没有添加到项目中,请清理并重建以查看是否可以解决您的问题。这对我有帮助。
答案 9 :(得分:0)
我在Lottie库遇到了同样的问题。
Interface Builder文件中的未知类AnimationView。
如果您的类视图位于其他模块中,则会发生这种情况。
要解决此问题,请进入IB文件(Xib或情节提要)/显示身份检查器并正确设置模块:
答案 10 :(得分:0)
我重命名了我的 TableViewCell 类之一。除了选中 Inherit Module From Target
复选框外,没有其他任何效果。
打开 xib 文件 > 选中时转到身份检查器 > 选中复选框(同时确保类名正确)。
完成!