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

170

自从我开始使用Xcode(4.6.3)以来,这个bug就一直困扰着我。每当我尝试将Storyboard中的项目链接到我的代码时,就会出现以下错误:

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

这也会影响到自定义类。我试过以下方法:

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

无论是任何类,在我的所有项目中都无法使用ctrl-drag创建连接。即使是全新的模板应用程序也会出现相同的问题。如果我手动输入代码然后使用ctrl-drag,我可以创建一个工作连接,但我无法自动添加它。迄今为止,我在互联网上找到的任何方法都没有帮助。有什么建议吗?


你确定 ViewController .m 文件已经被正确地包含在目标中了吗?(在右侧检查器面板中的复选框) - Alfie Hanssen
2
你的storyboard中有一个视图控制器,并指定了“ViewController”作为应该实例化以管理视图的类的名称。检查storyboard中的每个视图控制器:选择视图控制器,查看右侧窗格上的“identity inspector”,并查看“Custom Class”属性。如果它读取“ViewController”,那么这就是问题所在。输入应该管理你的视图控制器的类的名称...或者输入UIViewController以获取默认的UIKit实现。 - Nicholas Hart
1
我在“Identity Inspector”中将自定义类更改为“UIViewController”,然后无法再从Storyboard拖动到ViewController.h。如果我创建一个新类并尝试将其ctrl-drag到其中(在相应地设置视图控制器的类之后),我会得到相同的“找不到任何信息”的错误提示。 - user2597451
4
我也遇到过这个问题,对自动生成的ViewController类进行修改后解决了。例如,在viewDidLoad:方法中添加一个NSLog()即可。 - j b
1
可能是重复的问题:无法插入新的出口连接:找不到所命名类的任何信息 - Andrew_STOP_RU_WAR_IN_UA
在我的情况下,我创建了一个名为“aaa”的视图控制器,删除了引用但没有删除。我本意是要删除并删除引用。所以我去文件系统中删除了该文件。然后我重新创建了一个同名的新视图控制器。我确实想知道是否会有一些我不知道的剩余问题,因为我对Swift还很陌生。最终,我进行了Build->Clean,然后重新启动了XCode(“打开myproject.xcworkspace”)。然后我就能够无误地拖动插座了。 - Lucy
41个回答

3

保持目标!

我正在使用Xib添加一个新类时,开始遇到这个问题,花了很长时间在这里查看答案,看看是否有任何改变。

事实上,我的工作区中有多个目标,我经常需要在它们之间切换。

结果发现,添加新文件会启动Xcode中的重新索引。但如果您指向错误的目标,则索引可能是无意义的,在拖动连接Xcode时将无法找到您的类。

简而言之:

步骤1.

Target Seledction

确保您设置了正确的目标,以便索引有意义。


3

如果尝试了以上方法仍然无法解决问题,对我有效的奇怪技巧是在一段空白处添加插座(outlet)。只有在您添加的行上方或下方没有其他行时,该方法才有效。虽然奇怪,但它确实有效!


3
这对我很有用:
  1. 执行“清理构建文件夹”操作
    (按住“option”键并转到“Product”菜单即可访问它)。
  2. 从“Product”菜单中进行简单的“清理”操作(CMD-SHIFT-K)。
  3. 构建项目,让Xcode编译文件。如果需要,还要让它索引文件。
顺便说一句,我不确定这是否有帮助,但在执行上述步骤之前,我也删除了派生数据(Xcode首选项 > 位置)。

2
在storyBoard中选择ViewController,在右侧面板/"Customer class"/"class"中删除当前值,然后重新添加控件类(类型为"SampleViewController"),输入。 --> 这对我有用

2

产品 > 清理(命令 - Shift - K)解决了我的问题!


2

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


2

这是我用来解决问题的最简单步骤。

  1. 清理项目
  2. 在视图控制器中拖入一个新按钮。
  3. 构建项目。
  4. 将新拖动的按钮连接到类(无论是输出还是操作)。
  5. 然后就大功告成了!其他输出现在可以再次连接到该类了!

1

通常当这种情况发生时,我只是还没有保存类的代码。只需跳转到代码并按下cmd+s,它通常会立即解决问题。


1
我遇到了类似的问题,“找不到名为...的类”,原因是我很蠢,等我弄明白后才发现。确保你没有从项目拖动到接口,而是拖到了类本身。

1

我尝试了所有的方法!

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

已提交错误报告。


绝对不是说这是唯一的原因。只是要注意另一件事情。 - Aaron Kreipe
帮我删除所有派生数据,清理项目。但这是个bug,你是正确的。 - Genevios

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接