无法插入新的插座连接:无法找到已命名的类的任何信息

问题描述 投票:281回答:19

我在Xcode上遇到错误,说没有关于视图控制器的信息。

无法插入新的插座连接:无法找到已命名的类的任何信息

为什么会这样?

Screenshot 1

ios swift xcode interface-builder iboutlet
19个回答
627
投票

以下是一些可以解决这个问题的事情(按难度递增顺序):

  • 清洁项目(产品>清洁)
  • 手动粘贴 @IBOutlet weak var viewName: UIView! // or @IBAction func viewTapped(_ sender: Any) { } 并控制拖动它。 (根据需要更改类型。)另见this
  • 完全关闭Xcode并重新启动项目。
  • 删除派生数据文件夹(转到Xcode>首选项>位置,然后单击派生数据文件夹中的灰色箭头。然后删除项目文件夹。)
  • 单击类上的“删除”,删除引用(不是“移至废纸篓”),然后重新添加。 (见this answer

3
投票

我找到了一个更简单的解决方法,因为我可以在XCODE 9上找到这个bug。

第一步转到viewcontroller并手动编写要连接的属性,如下例所示,请确保使用以下格式。

@IBOutlet弱var questionsStackView:UIStackView!

第二步转到故事板并连接您的视图或尝试连接到您在步骤1中创建的属性的任何内容。

以上将节省您删除和清理派生数据的时间。


2
投票

在我的情况下,这是bc我在IB中选择了一个新的UIViewController文件然后尝试ctrl-拖动到这个新的控制器,而不先删除Connections Inspector中的先前连接。首先删除它们然后重试。


2
投票

对我来说,当它在右侧选项卡>本地化时,我检查了英语复选框。最初只检查了Base。在那之后,我没有更多的问题。希望这可以帮助!


2
投票

我在重命名课程时遇到了这个错误。然后我按照以下步骤解决了这个问题

  • 在Xcode菜单中 - > Product - > Clean
  • Restart Xcode

2
投票

enter image description here

我选择了Automatic选项来选择ViewController.swift文件。然后,我可以采取渠道。


2
投票

请执行以下两个步骤以消除此错误。

1.  Clean Project using Product -> clean.
2.  Run the Project.

现在尝试添加/连接操作或插座。

多次为我工作。


0
投票

最简单的解决方案: - 我使用了xCode 7和iOS 9。

在你的.m

删除#import“VC.h”

保存.m并再次链接您的插座它工作正常。


0
投票

我使用了xCode 7和iOS 9。

在你的.m

删除#import "VC.h"

保存.m并再次链接您的插座它工作正常。

在你的.m

添加#import "VC.h"

保存.m


0
投票

这些都不适合我,但我确实想到了这一点。

在故事板里面,我将相应的ViewController复制到剪贴板中并将其删除,之后我再次粘贴它。

突然间,一切都像魅力一样!


0
投票

它发生在我将Swift文件添加到Objective-C项目中时。 所以,在这种情况下你可以做的是。 。

  • Select MY_FILE.Swift >> Delete >> Remove Reference
  • Select MY_FOLDER >> Add MY_FILE.Swift
  • Voila ! You are good to go .

133
投票

或者,如果以上都不起作用,请先将文件夹的出口名称输入文件@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!,然后单击并从笔尖中的出口拖动到您刚编程创建的变量。它应该没有任何清理,构建和删除任何麻烦。


50
投票

只需执行以下两个步骤即可消除此错误

  1. 使用产品>清洁清洁项目
  2. 运行该项目

现在尝试添加动作或插座。而已。

快乐的编码


48
投票

最好的答案中的提示都不适合我。真的很疯狂然后注意到助理编辑器已经设置为手动,我在ViewController.swift(接口)而不是ViewController.swift文件。

改变了,问题解决了。有点尴尬,但嘿,我们都在学习。

enter image description here


13
投票

以下是为我解决的步骤:

  1. 从View(storyboard / xib)中删除Class name引用并保存;
  2. 再次添加类名并保存;
  3. 清洁和建设;

做完了!


8
投票

我遇到过同样的问题。我厌倦了以下解决方案,但没有奏效:

  1. Clean Project (cmd + shift + k)甚至Clean Project Build (cmd + shift + alt + k)
  2. Deleted Derived dataModule Cache content

以下是此问题的解决方法:

  1. 移至源代码文件并手动编写IBOutlet / IBAction(首选复制粘贴)

Screenshot 1

  1. 然后转到Storyboard文件并打开Utilites窗口
  2. 转到Connection Inspector
  3. 然后使用Interface Builder连接源文件中编写的IBOutletIBAction

Screenshot 2


8
投票

我有同样的问题。当我尝试通过control-drag创建一个插座时,我意识到比在X-Code中选择了Manual项目

enter image description here

在我将其设置为自动后,它工作了

enter image description here


6
投票

我通过以编程方式创建标签和文本字段,然后从代码左侧的小空圈到故事板上的组件进行Command-Dragged来解决此问题。为了说明我的观点:我写了@IBOutlet weak var HelloLabel: UILabel!,然后按下Command并将代码拖到故事板上的组件中。


6
投票
  1. 关闭您正在处理的项目。
  2. 删除项目的【DerivedData】文件夹。 (此文件夹可能位于项目文件夹内或内部 ~/Library/Developer/Xcode/DerivedData/ (您的项目)/)或您设置的其他地方。
  3. 重启你的项目。
© www.soinside.com 2019 - 2024. All rights reserved.