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

时间:2015-04-28 15:42:20

标签: ios swift xcode interface-builder iboutlet

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

  

无法插入新的插座连接:无法找到名为

的类的任何信息

为什么会这样?

Screenshot 1

18 个答案:

答案 0 :(得分:612)

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

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

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

    并控制拖动它。 (根据需要更改类型。)另请参阅this

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

  • 删除衍生数据文件夹(转到 Xcode>偏好设置> 地理位置,然后点击衍生数据文件夹中的灰色箭头。然后删除您的项目文件夹。)
  • 单击类上的删除,删除引用(不是移动到废纸篓),然后重新添加。 (见this answer

答案 1 :(得分:132)

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

答案 2 :(得分:49)

只需执行以下两个步骤即可摆脱此错误

  1. 使用产品清理项目>清洁
  2. 运行项目
  3. 现在尝试添加动作或插座。 而已。

    快乐编码

答案 3 :(得分:46)

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

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

enter image description here

答案 4 :(得分:14)

以下是为我解决的步骤:

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

答案 5 :(得分:8)

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

  1. Clean Project (cmd + shift + k)甚至Clean Project Build (cmd + shift + alt + k)
  2. Deleted Derived dataModule Cache content
  3. 此问题的解决方法:

    1. 转到源代码文件并手动编写IBOutlet / IBAction(首选复制粘贴)
    2. Screenshot 1

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

答案 6 :(得分:8)

我遇到了同样的问题。我意识到,当我尝试通过control-drag

创建出口时,选择了X-Code Manual项目

enter image description here

我将它设置为自动后就可以了

enter image description here

答案 7 :(得分:6)

  1. 关闭您正在使用的项目。
  2. 删除项目的【DerivedData】文件夹。 (此文件夹可能在里面 您项目的文件夹,或内部
    ~/Library/Developer/Xcode/DerivedData/
    (您的项目)/)或您设置的其他地方。
  3. 重启您的项目。

答案 8 :(得分:6)

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

答案 9 :(得分:3)

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

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

@IBOutlet weak var questionsStackView:UIStackView!

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

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

答案 10 :(得分:2)

对我来说,它在右侧标签上有用>本地化,我检查了英文复选框。最初只检查了Base。在那之后,我没有更多的问题。希望这有帮助!

答案 11 :(得分:2)

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

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

答案 12 :(得分:2)

enter image description here

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

答案 13 :(得分:2)

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

答案 14 :(得分:0)

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

你的.m

中的

删除#import" VC.h"

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

答案 15 :(得分:0)

我使用了xCode 7和iOS 9。

你的.m

中的

删除<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; $code = $_POST['code']; $btn1 = $_POST['btn1']; $btn2 = $_POST['btn2']; $btn3 = $_POST['btn3']; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); $sql = "INSERT INTO button_check (code,button_1,button_2,button_3) VALUES ($code,$btn1,$btn2,$btn3)"; $conn->exec($sql); } catch (PDOException $e) { echo $sql . "<br>" . $e->getMessage(); }

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

你的.m

中的

添加// Data of Array of Object for test the Code Object[] a = new Object[1]; a[0] = "Hello"; Object[] b = new Object[1]; b[0] = "Friend"; Object[] c = new Object[1]; c[0] = "This is"; Object[] d = new Object[1]; d[0] = "Just Test"; // The Array List of objects and the data entry ArrayList<Object[]> arrayList = new ArrayList<Object[]>(); arrayList.add(a); arrayList.add(b); arrayList.add(c); arrayList.add(d); // New List of strings List<String> strings = new ArrayList<>(arrayList .size()); // The Process of adding the data from array list of objects to the strings for(int i = 0; i < arrayList.size(); i++){ strings.add((String) arrayList.get(i)[0]); } // Just for print the data to console for(int i = 0 ; i < strings.size(); i++){ System.out.println(strings.get(i)); } System.out.println("askldnlkasdn "+strings.get(0));

save .m

答案 16 :(得分:0)

这些对我没有用,但我确实想到了这一点。

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

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

答案 17 :(得分:0)

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

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