165

自从我开始使用 Xcode (4.6.3) 以来,这个错误一直让我发疯。每当我尝试将 Storyboard 项目链接到我的代码时,我都会收到错误消息:

找不到名为 ViewController 的类的任何信息。

自定义类也会发生这种情况。我尝试过以下方法:

  • 删除委托数据。
  • 删除和重新添加类。
  • 重新启动 Xcode。
  • 重新安装 Xcode。

无论课程是什么,我都无法通过 ctrl-drag 在我的任何项目中创建连接。全新的模板应用程序也会出现同样的问题。如果我手动输入代码然后按 ctrl-drag,我可以建立一个有效的连接,但我不能自动添加它。到目前为止,我在 Internet 上找不到任何帮助。任何指针?

4

40 回答 40

314

为我解决这个问题的方法实际上是从项目中删除了这个类。

脚步:

  1. 在项目文件资源管理器(左侧面板)中找到类并右键单击 -> 删除
  2. 删除参考(不要移到垃圾箱,因为您将永远失去课程)
  3. 右键单击包含该类的文件夹 -> 将文件添加到...
  4. 在文件系统中找到刚刚删除的类

这似乎迫使 Xcode 将类链接回故事板。

注意:对我来说,以下内容不起作用

  • 关闭 Xcode
  • 清理项目
  • 从情节提要中删除类名并重新输入

我认为这是Apple的一个错误

于 2014-12-20T09:02:45.017 回答
138

如果有人仍然对此感到沮丧,那么有一个技巧可以让事情正常进行。

我所做的是在我的类中手动输入一个插座,例如: ,然后从代码@IBOutlet weak var someView: UIView!拖到IB 或故事板中的视图。在此之后,我可以从 IB / Storyboard 拖到我的班级进行连接,助理编辑在“自动”中识别班级等......

每次都有效。

于 2015-04-06T15:59:02.997 回答
41

对我来说,将它们从右栏中的目标成员中删除并再次添加它们就可以了 在此处输入图像描述

于 2015-11-10T02:44:42.827 回答
13

有时 Xcode 确实是由于 VC 没有引用类文件。对此的简单解决方案是:

按照给定的方式手动写入属性。

class YourClassName{

     @IBOutlet weak var YourTableName: UITableView!

}

这将在 @IBOutlet 之前创建一个空链接符号,在助手编辑器中打开您的项目,然后单击链接符号在此处输入图像描述并拖动到您要连接的视图中(我已与 TableView 连接)。就是这样。享受快乐编码!

于 2017-01-17T08:59:14.563 回答
8

我刚刚在 2017 年 4 月使用 Xcode 8 遇到了这个问题

只需通过代码创建一个插座并编译修复它。例如:

@IBOutlet weak var containerViewHeight: NSLayoutConstraint!

你必须爱 Xcode...</p>

编辑:仍在 Xcode 9 上发生

于 2017-04-13T13:10:49.830 回答
8

我尝试了一切,但没有成功,所以对我来说有效的是:

  • 清理 Build 文件夹和项目。
  • 打开项目(窗口 -> 项目)
  • 在列表中找到您的项目并删除派生数据
  • 关闭 Xcode
  • 重新启动计算机(不选择重新打开打开的窗口)
  • 运行 Xcode
  • 工作!

我所有的视图控制器都没有被识别,所以删除所有文件并重新添加不是一个选项,因为这是一个大项目。

于 2016-03-09T16:51:29.783 回答
7

以下步骤对我有用,希望对你也有用

1-您需要在关闭 Xcode 后重新打开您的项目。

2-等待索引项目文件

3-检查它是否有效

4-如果仍然无法正常工作,请按照第 5 步操作,如果对您不满意 :)

5-清理并构建您的项目目标

在此处输入图像描述

于 2016-08-19T15:27:25.427 回答
4

对我来说,以下工作:

  1. 执行“清理”和“清理构建文件夹”(按“产品”菜单上的“选项”以获取“清理构建文件夹”命令

  2. 停止 Xcode

  3. 在终端中,转到派生数据文件夹:

    (/用户//库/开发人员/Xcode/DerivedData)

删除项目的派生数据目录。

  1. 在空中挥舞死鸡

  2. 启动 Xcode

于 2017-09-20T13:45:14.147 回答
3

到目前为止,我必须结合几个答案:

  1. 从情节提要中删除自定义类名称。

(点击情节提要中视图控制器左上角的黄色按钮 -> 转到身份检查器(选项+命令+ 3)-> 删除顶部的自定义类名)

  1. 删除对视图控制器文件的引用。

(右键单击文件 -> 删除 -> 删除引用)

  1. 将视图控制器文件添加回项目。

(右键单击文件所在的文件夹->“将文件添加到[项目]”)

  1. 将自定义类名称添加回情节提要。
于 2015-04-29T15:18:30.267 回答
3

保持目标!

我正在添加一个带有 Xib 的新课程,我开始看到这个问题,我花了很长时间查看这里的答案,看看是否有任何影响。

碰巧的是,我的工作区中有多个目标,而且我经常不得不在它们之间切换。

原来添加新文件将在 Xcode 中启动重新索引。但是,如果您指向错误的目标,那么索引可能毫无意义,并且在拖动连接期间 Xcode 将无法找到您的类。

简而言之

步骤1。

目标选择

确保您设置了正确的目标,这样索引才有意义。

于 2018-07-03T14:17:27.867 回答
3

如果人们尝试上述方法但仍然无法正常工作,那么对我有用的奇怪技巧是将插座添加到一大块空白中。如果您要添加的行的正上方或正下方没有其他行,则它可以工作。奇怪,但它奏效了!

于 2016-06-21T15:42:07.170 回答
3

这对我有用:

  1. 执行“清理构建文件夹
    (按住“选项”键并转到“产品”菜单以访问它。
  2. 从“产品”菜单执行一个简单的“清洁”(CMD-SHIFT-K) 。
  3. 构建项目以让 Xcode 编译文件。此外,如有必要,让它索引文件。

附带说明一下,我不确定这是否有帮助,但在执行上述步骤之前我还删除了派生数据(Xcode 首选项> 位置)

于 2018-07-06T12:17:59.337 回答
3

对我有用的是,不是将连接从按钮拖到代码,而是:

  1. 单击所需的情节提要项目。
  2. 打开连接检查器(右面板)
  3. 从 + 圆圈拖动到代码区域。像这样:

在我以这种方式链接我的代码之后,它从那以后就可以正常工作了。

于 2017-04-07T15:43:11.630 回答
2

选择storyBoard中的ViewController,删除右侧面板/“客户类”/“类”中的当前值,然后重新添加控件类(类型:“SampleViewController”...),进入。--> 那对我有用

于 2014-09-05T07:20:10.253 回答
2

产品 > 清洁(Command - Shift - K)为我修复了它!

于 2016-09-16T19:36:32.207 回答
2

我尝试了所有这些答案,对我来说问题与 Xcode 无法索引文件有关。我通过简单地退出 Xcode 并重新打开项目来解决这个问题。当然,在尝试了上述所有解决方案之后,我做到了:p

于 2015-10-25T16:11:50.017 回答
2

这是我为解决此问题所做的最简单的步骤。

  1. 我清理项目
  2. 在视图控制器中拖动一个新按钮。
  3. 构建项目。
  4. 将新拖动的按钮连接到类(出口或动作)。
  5. 然后瞧瞧!!!其他插座现在可以再次连接到班级!
于 2017-09-14T02:04:36.107 回答
1

通常当这种情况发生在我身上时,我只是还没有保存课程的代码。只需跳到代码并点击 cmd+s,它通常会以正确的方式解决问题。

于 2016-11-17T20:58:12.450 回答
1

我什么都试过了!

确保你的 UIViewController 的类名不包含“Test”这个词

已提交错误报告。

于 2018-09-02T22:12:42.420 回答
1

好吧,伙计们几乎看到了所有热门答案,但没有一个对我有用。

所以对我有用的是以下内容:

  1. Derived Data从您的 Xcode 项目中复制地址。这可以使用以下方法完成:

Xcode -> Preferences -> Location Tab -> Derived Data

  1. Close Xcode

  2. 现在转到派生数据位置并删除那里的项目文件夹。

现在打开 Xcode,瞧!

于 2016-11-29T11:31:52.397 回答
1

我遇到了类似的问题,“找不到名为...的类”,一旦我弄清楚了原因,我就很愚蠢。确保您没有从项目拖动到界面- 确保它被拖动到类本身

于 2018-08-29T19:33:40.373 回答
1

只需要清理并重新构建项目。

于 2017-12-27T21:15:48.523 回答
1

根据我的测试经验,如果您删除了在 Xcode 中关联的类,然后再次添加文件,则会出现此问题。

于 2016-04-01T08:26:17.413 回答
1

我只是重新启动 Xcode,然后它就可以工作了。

于 2018-05-25T07:06:59.077 回答
1

上述步骤都不适合我,但我想我可能已经发现了这个问题。至少它对我有用,而且它不是 Xcode 中的错误。

在助手编辑器中查看包含 viewController 代码的窗口顶部。右边的第三个选项可能是“手动”,但应该是“自动”。一旦我改变了这个,问题就解决了!

于 2018-01-12T01:08:33.800 回答
0

正如我对@ChrisHarrison 的回答所评论的那样,这些东西对我不起作用,但是删除派生数据就像我通过删除https://stackoverflow.com/a/16182672/1449799中的派生数据一样让它工作

于 2015-01-16T00:38:27.330 回答
0

我会尝试重新制作有问题的 .m 和 .h 文件并给它们一个原始名称,而不是像“ViewController”这样的通用名称。尝试更多按照您希望该文件执行的操作,并以 View Controller 结尾(即“PizzaDecoraterViewController”)

然后选择要连接到这些文件的 ViewController。确保选择 ViewController,而不仅仅是其中的一个对象。单击底部的黑条(带有“First Responder”和“Exit”图标的黑条)。整个 ViewController 的轮廓应为蓝色。然后转到 Identity Inspector 中的 Custom Class 部分,您应该会在第一个字段中看到灰色的“UIViewController”。在该字段中,输入您希望它连接到的 .h 或 .m 文件的名称(开始输入 PizzaDecorator... 它应该会做一些自动完成的事情)。然后按 ENTER。

当您打开助手编辑器时,请确保您尝试拖放到的文件实际上是正确的文件。

如果您已完成上述所有操作,那么它应该可以工作。

于 2013-07-19T02:40:39.877 回答
0

在我应用 MVC 架构后,我在更改 info.plist 文件的位置后遇到了这个问题。

指定新文件位置后,问题解决

于 2021-11-16T14:53:27.200 回答
0

好吧,就我而言,有效的东西(有点奇怪,但有效)如下:

尝试添加数据源(例如,对 ViewController 的扩展,如 UITableViewDataSource)。Xcode 将尝试重新加载 ViewController。然后我写了协议的一些方法(一开始Xcode没有自动完成方法,而是手动写出来),然后我添加了IBOutlets,最后我删除了数据源。

例子:

class TestViewController:UIViewController{
    // This viewController presents “Could not find any information for  class named ViewController”
}

extension TestViewController:UITableViewDataSource{
    //Add Some methods of the protocol, Xcode will try to autocomplete and then it's going to reload the class, from then you can add your IBOulets / Actions .. And remove this extension if you don't need it otherwise.
}
于 2015-09-07T16:00:23.477 回答
0

对我来说,我为其指定自定义类的视图未能由界面生成器编译。它被标记了@IBDesignable

删除@IBDesignable,然后添加我的网点,然后将其标记为已@IBDesignable解决我的问题。

于 2015-10-08T19:22:40.137 回答
0

在我的例子中,我有一个相同的类名,xcode 无法识别我的目标是哪一个,所以在选择你的类名时要小心。

于 2019-06-22T05:25:05.853 回答
0

对我来说,问题是项目存在语法错误。解决错误后一切正常。我正在使用 xCode 11

于 2020-03-21T15:39:32.997 回答
0

就我而言,这是因为 Xcode 索引进程已停止运行。重新启动我的 Mac 修复它。

于 2016-10-27T12:35:28.467 回答
0

我所做的是将按钮连接为不带参数的操作,将发送方连接为UIButton. 结果是——

@IBAction func comma1() {

}

我可以把剩下的outletsor actions.

于 2019-11-22T14:40:00.450 回答
0

我知道这在大多数情况下只是 Xcode 起作用,但在我的情况下,没有任何建议的操作能够解决问题,我相信这是我在尝试重命名项目时犯的一个错误,所以我最终创建了一个新项目并导入所有内容。

这最终修复了它。

于 2019-06-20T09:45:13.293 回答
0

只需尝试删除项目的派生数据

于 2015-10-31T15:42:26.630 回答
0

删除文件(仅引用)并再次添加文件。

于 2015-08-26T10:19:43.320 回答
0

从 finder Xcode 检查是否已关闭。

强制退出 Xcode 并重新启动。

产品 > 清洁

于 2016-10-12T07:05:05.420 回答
0

转到项目文件夹并删除派生数据文件夹

如果找不到派生数据,请转到查找器并转到

 ~/Library/Developer/XCode/DerivedData/"project"

(将“项目”名称替换为项目名称)

于 2018-04-06T10:59:54.193 回答
0

试试这个

rm -rf ~/Library/Caches/com.apple.dt.Xcode
defaults delete com.apple.dt.Xcode IDEIndexDisable
defaults write com.apple.dt.Xcode IDEIndexEnable 1 
于 2016-07-27T03:31:21.513 回答