Interface Builder文件中的未知类信息

问题描述 投票:10回答:9

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

Unknown class info in Interface Builder file.

每次我运行我的项目时,都会出现一些疯狂的错误或者一些条形消失。有谁知道该怎么办?

ios error-handling interface-builder
9个回答
23
投票

按顺序尝试这个:

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

如果这没有帮助,您可能会引用一个必须手动查找和删除的笔尖或故事板中的类。


0
投票

我和Lottie图书馆有同样的问题。

Interface Builder文件中的未知类AnimationView。

如果您的类视图位于其他模块中,则会发生这种情况。

要解决此问题,请进入您的IB文件(Xib或故事板)/显示身份检查器并正确设置模块:

enter image description here


10
投票

警告可能是因为您已为其中一个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.

它对我有用。


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"


2
投票

我已经解决了这个问题(使用Swift 4 / Xcode 10.1时),转到Custom Class面板,选中'Inherit Module From Target'(在Class&Module行下面)。


1
投票

在将Interface Builder中的视图或控制器自定义到该类之后,当您更改视图名称并查看控制器类时,我倾向于看到这些类型的错误。我会在您的笔尖或故事板中查看您的视图和控制器,以查看您的自定义类是否仍然存在并相应地匹配。

当您重命名或删除基础代码而不更新IB文件时,您将遇到IB文件的问题。在将它们链接到Interface Builder中的对象之后删除或更改IBOutlet的名称时会发生类似的问题。除非您明确删除它,否则您仍将在Interface Builder中拥有该引用。

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


1
投票

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


1
投票

我将用我的一些上下文重述问题,然后提供解决方案:

我创建了一个自定义Swift框架,并将框架项目导入工作区。然后,我使框架成为我的Swift应用程序的目标依赖项。最后,我在Interface builder中的框架中引用了一个类。

我一直得到类找不到错误,我注意到在调试器中它的输出类是错误的/未解码的ObjC对应物..

解决方案:

只需将框架标题添加到ObjC桥接标题:

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

现在,导出符号,您可以通过cmd +单击标题本身来验证,然后您将看到错位/未编码的类名。


0
投票

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

您似乎已删除文件Main(Storyboard),但您仍然在项目属性中引用它。


0
投票

可能是文件未在构建过程中被复制。转到Build Phases选项卡并检查复制Bundle资源以查看文件是否存在。如果没有添加到项目清理和重建,看看是否可以解决您的问题。这对我有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.