无法插入新的插座连接:找不到名为该类的任何信息


281

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

无法插入新的插座连接:找不到名为该类的任何信息

为什么会这样呢?

屏幕截图1


2
我觉得这以前有人问: stackoverflow.com/questions/17735182/...
塔帕尼

我只是退出了Xcode,然后重新打开它。编译器将重新加载所有文件,并且它可以检测到您要查找的文件
Jane chicken

检查您的视图控制器文件中是否没有未连接的插座。我发现我做到了。删除后,我没有任何问题。
Kex

对我而言,上述解决方案均无效。我必须删除视图控制器,然后将其复制并粘贴到情节提要中以重复使用。然后将新的视图控制器拖到情节提要中,一切都很好:)。我希望它可以帮助遇到同样问题的人。
Arslan Saleem

这是XCode中的一个BUG,我不知道为什么他们不修复它。您必须关闭XCode并重新打开。当您再次尝试放置电源插座时,但这一次在创建电源插座之前先留下一堆ENTERS。您无需删除任何内容或在其他选项上浪费时间……这将解决您的问题。
mavesonzini

Answers:


692

以下是一些可以解决此问题的方法(按难度递增的顺序):

  • 清理项目(产品>清理
  • 手动粘贴

    @IBOutlet weak var viewName: UIView!
    // or
    @IBAction func viewTapped(_ sender: Any) { }
    

    并控制拖动到它。(根据需要更改类型。)另见

  • 完全关闭Xcode并重新启动项目。

  • 删除“派生数据”文件夹(转到“ Xcode”>“首选项” >“ 位置”,然后单击“派生数据”文件夹旁边的灰色箭头。然后删除您的项目文件夹。)
  • 单击班级上的删除,删除引用(而不是移至废纸again),然后再次将其重新添加。(请参阅此答案

不要忘记删除视图控制器的类,以便该措施将工作
雷吉-

8
在Xcode 8.3.2中,这些步骤都不对我有用。我必须“显示身份检查器”>清除“类”字段(突出显示自定义类的名称并删除)>在“类”字段中重新输入类名称。Xcode自动完成了类名。然后我按回车。
PeqNP '17

将行添加alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'到〜/ .bashrc中,以使用该命令purgederiveddata通过一个命令清除
eskimwier

我找到了另一种解决此问题的方法,当我更改某些构建设置以提高构建速度时,这发生在我身上。 stackoverflow.com/a/50555888/2952876
Mathias Van Houtte,

我强烈鼓励大家在下面尝试我的解决方案。可能会知道人们不得不重新启动计算机以解决经常显示的错误。
Stephen Paul

134

或者,如果上述方法均无效,请先在文件中输入插座名称,@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!然后单击并从笔尖的插座中拖动到您刚刚以编程方式创建的变量。它应该可以正常工作,而没有任何清理,建造和删除任何东西的麻烦。


4
通常是更快的解决方案,而不是花费大量时间进行清理,构建等。谢谢。
mohonish '16

1
非常好,一旦您执行此操作,自动程序就会开始显示,谢谢。
2016年

1
首先将您的XIB对象连接到IBoutlet,然后尝试将其约束IBOutlet连接起来。没有这个,它将总是显示错误。
Chandramani

在尝试插入新插座的地方也会有所不同。因为,列表的顶部(上方有清晰的空格)有效;列表的中间没有。
理查德

1
这应该被标记为最佳答案。它更容易,更快,更可靠。而且它一直都在工作!干得好,谢谢@StephenPaul
denis_lor '19


49

最佳答案中的所有提示都没有对我有用。快疯了。然后注意到,助理编辑器已经以某种方式设置为“ 手动”,我在ViewController.swift(接口)上,而不是在ViewController.swift文件上。

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

在此处输入图片说明


1
救生员答案!没有其他答案能永远解决它。太糟糕了,该错误描述没有至少暗示您可能位于wearg文件中。谢谢。+1图像使一切变得清晰。
Pauloco

我注意到了一些非常相似但又不同的东西:在显示类名称的顶部路径中,只有类名称,但是缺少路径的开头,例如myProject> appName> controller和类。我选择了另一堂课,然后回到有问题的课,一切都很好
claude31 '18

15

这是为我解决的步骤:

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

做完了!


10

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

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

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

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

屏幕截图1

  1. 然后移至Storyboard文件并打开Utilites窗口
  2. Connection Inspector
  3. 然后IBOutletIBAction使用Interface Builder 将和写入源文件。

屏幕截图2


拖动插座/动作根本不起作用,但是像我这样手动完成之后,一切都再次正常运行。
杰森

这是建立连接的标准替代方法。对于单选按钮操作,唯一的方法是AFAIK。在情节提要中,您也可以右键单击控制器,找到功能并进行连接。
简短的

8

我有同样的问题。Manual当我尝试通过Control-Drag创建出口时,我意识到比在X-Code 项目中被选中

在此处输入图片说明

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

在此处输入图片说明


我有这个确切的问题。甚至都没有注意到差异。
约书亚舞

大!!!我为这个错误清除项目浪费了很多时间,重新启动xCode,删除派生数据,但这只是对我有用的解决方案!非常感谢!
安东·埃里金

7

我通过编程创建Labels和Textfields,然后从代码左侧的小空白圆圈到Storyboard上的组件进行Command-Dragged来解决此问题。为了说明我的观点:我编写@IBOutlet weak var HelloLabel: UILabel!了代码,然后按Command并将代码拖到情节提要上的组件中。


该解决方案对我来说非常有效!除了@IBOutlet weak var myButton: UIButtonI,我使用相同的过程进行设置@IBAction func doSomething(_ sender: Any) { },然后将此功能连接到故事板上的UIButton。感谢您分享@KuboAndTwoStrings
Nii Mantse

6
  1. 关闭您正在处理的项目。
  2. 删除项目的【DerivedData】文件夹。(此文件夹可以在您项目的文件夹中,也可以在
    ~/Library/Developer/Xcode/DerivedData/
    (您的项目)/中),也可以由您设置。
  3. 重新启动您的项目。

4

我发现了一个更简单的解决方法,因为此错误可以在XCODE 9上找到。

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

@IBOutlet弱var问题StackView:UIStackView!

第二步转到情节提要,然后连接视图或尝试连接到在步骤1中创建的属性。

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



2

就我而言,这是不列颠哥伦比亚省,我在IB中选择了一个新的UIViewController文件,然后尝试ctrl拖动到该新控制器,而没有先在Connections Inspector中删除先前的连接。首先将其删除,然后重试。


2

对我来说,当在右侧选项卡>本地化时,我选中了英语复选框,它起作用了。最初仅检查Base。之后,我再也没有问题了。希望这可以帮助!


2

在此处输入图片说明

我选择了自动选项来选择ViewController.swift文件。然后我就可以接销了。


2

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

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

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

为我工作了很多次。


1

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

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

为此!我已经尝试半个小时独自解决这个问题了。情节提要中的此类问题很容易解决。谢谢!这对我很有帮助!
格伦



0

这些都不适合我,但我确实知道了。

情节提要内部,我将相应的ViewController复制到剪贴板中并删除了,然后再次粘贴。

突然,一切又像魅力一样运转了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.