【问题标题】:xcode 7.3: Could not insert new outlet connection and deleting DerivedData doesnt workxcode 7.3:无法插入新的插座连接并且删除 DerivedData 不起作用
【发布时间】:2016-10-08 06:12:28
【问题描述】:

the most common answer for this question 在 SO 上已有 3 年历史,而普遍认可的解决方案(删除 DerivedData)对我不起作用,所以我不得不重新提出这个问题。

我正在尝试拖动为我的 tableview 创建一个插座。

如前所述,删除 DerivedData 对我没有任何作用(但我可以看到它正在重新索引)。第二个最常见的答案是

Removing(删除引用,不删除)然后添加 适当的文件(您要添加出口的类的文件)是 其实够了。

编辑 1 我发现取消选中后(在 XCode 6.3.1 中)我不得不等待 几秒钟后,索引在项目中出现并完成 名称框。倒退的方式也一样。这增加了修复的机会 几乎所有(但不是所有)案例中的问题。

编辑 2 删除引用意味着您不删除文件 完全但只是将其从项目中删除(它仍然存在于 项目的文件夹,稍后添加)。

我不知道这是否仍然适用于 Xcode 7.3,因为我在情节提要上工作并且没有任何 .h 或 .m 文件要删除或删除引用。如果此建议在 xcode 7.3 中仍然有效,您能否告知在哪里单击?

我尝试过的其他方法不起作用

  • 保洁项目
  • 重启xcode
  • 在终端:defaults delete com.apple.dt.Xcode
  • 在终端:defaults write com.apple.dt.XCode IDEIndexDisable 0
  • 从头开始重写整个项目

帮助兄弟?

【问题讨论】:

  • 嗨@EICaptainv2.0,类名确实是ViewController。我看不出有什么问题...
  • 我发现有时在您想要创建 IBOutlet 的位置创建一个空白行会有所帮助,或者您可以手动创建 IBOutlet,然后在 IB 中从“新引用出口”拖动到您的视图控制器对象左侧面板(您需要先展开此面板,从您的屏幕截图中它当前处于隐藏状态)并建立连接。助手视图通常有点不稳定
  • 哦,为了风格,在类的顶部创建所有属性,而不是在某些函数的中间
  • 我只是浪费了最后一个小时试图解决这个问题。我不能。我做了一个 git reset HEAD --hard 并重新做了我的修改,从控制拖动所需的插座开始。第二次尝试成功了。
  • 嗨,伙计们,Paulw11 的第一条评论帮了我(第二条评论可能有助于将来某人的理智!)非常感谢大家!希望未来的人们能从中受益,因为这浪费了好几个小时

标签: ios xcode swift


【解决方案1】:

以上解决方案都不适合我。 (删除派生数据,删除目标类文件并重新添加它,创建一个新的目标类文件并将文本复制并粘贴到那里,重新启动xcode,重新启动mac,清理,清理构建文件夹,或者我能想到的任何组合等等)

最后,起作用的是向目标类添加一行(如print("dummy")),然后构建项目

我只能猜测为什么。我的猜测是,其他解决方案都没有强制执行目标类文件的新编译。不知何故,xcode“知道”代码更改了哪些类。顺便说一句,添加空行或注释行不起作用。 Xcode 看起来很“智能”,并且知道如果您添加注释或空行,则不需要新的编译。它需要是可编译的代码。再次......只是一个猜测。也不知道为什么删除派生数据,清理和清理构建文件夹不起作用。

【讨论】:

    【解决方案2】:

    我尝试了很多选项都没有好的结果,最后我打开终端并输入:

    默认删除 com.apple.dt.XCode IDEIndexDisable

    然后我重新启动了mac,再次打开Xcode,它现在可以工作了(这甚至解决了自动完成问题)

    【讨论】:

      【解决方案3】:

      在我的情况下,这是我不小心删除但属于编译源的另一个文件(比如 HeaderCell.Swift)。 Xcode 没有显示实际问题,但错误地显示 (FooterCell.swift & FooterCell.xib) 的“无法插入新的插座连接”。 恢复文件 HeaderCell.Swift 后,IBOutlet 连接工作正常。

      【讨论】:

        【解决方案4】:

        如果从情节提要或笔尖拖动连接不起作用,您可以从连接检查器中进行。单击并拖动“新参考插座”上的“+”号。

        在 xCode 7.3 上为我工作。

        【讨论】:

          【解决方案5】:

          对我来说,简单的解决方案是创建一个新的 ViewController 类并将该类重新分配给情节提要。然后我就可以像往常一样通过点击和拖动来使用 IBOutlets。

          我的问题似乎是由于尝试重命名课程造成的。我在代码中重命名了文件,并在情节提要中重新附加了它。但是 IBOutlets 似乎在重命名类时遇到了问题。

          【讨论】:

            【解决方案6】:

            什么对我有用 - 删除类文件(似乎位于“基础项目”文件夹中)
            - 在默认项目文件夹中新建一个。

            顺便说一句,我之前尝试过删除派生数据,但仍然存在相同的错误。

            【讨论】:

              【解决方案7】:

              我找到了一种以简单的方式系统地重现此错误的方法

              • 在 ViewController 上拖动天蓝色线并将拖动留在提示内(“插入插座或插座集合):创建连接框正常显示

              • 现在点击“连接”按钮后....BUUM! “无法插入新的插座连接

              • 最后尝试做同样的事情,但将拖动留在提示框之外

              • 点击“连接” 你会发现现在一切正常!

                希望对您有所帮助!

              【讨论】:

              • 点击接受努力。也无法接受 Paulw11 的评论。
              【解决方案8】:

              嗨,未来的 xcode n00bs(我讨厌循环没有被提问者关闭!),请参阅 @Paulw11 的评论。为我修好了

              您可以手动创建 IBOutlet,然后在 IB 中拖动 左侧视图控制器对象的“新引用出口” 手面板(您需要先从您的 截图它目前是隐藏的)并建立连接。这 助手视图通常有点不稳定

              【讨论】:

                猜你喜欢
                • 2018-06-12
                • 1970-01-01
                • 2012-06-15
                • 2013-02-23
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-03-21
                相关资源
                最近更新 更多