【问题标题】:@IBOutlet and @IBAction refers to wrong project, how to get rid of those references?@IBOutlet 和 @IBAction 引用了错误的项目,如何摆脱这些引用?
【发布时间】:2016-07-18 10:22:01
【问题描述】:

我已将一些源代码从一个 xcode-project 复制并粘贴到另一个new 项目。

包含在一些@IBOutlets 和@IBActions 的复制代码中。我的意图是稍后将它们连接到新项目中的故事板。 但是,xcode 以某种方式设法复制了对旧项目故事板的引用我怎样才能摆脱这些引用?

更新:在我的故事板添加到购买按钮的连接后,xcode 指示购买按钮连接到两个不同的故事板。

【问题讨论】:

  • 项目清理和构建后是否可重现?如果没有,您能否创建一个重现该问题的最小项目?
  • @Sulthan 引用在清理和构建后仍然存在。我试图在一个新的最小项目中重现该问题,但我无法重现该错误。所以也许我对我的项目做了其他事情。
  • 取变量名,例如“buyButton”并尝试 Xcode 搜索该名称。如果连接了插座,您应该能够找到它(Xcode 也通过 xib 和故事板搜索)。
  • 我只能在 swift-file 中找到“buyButton”。我期待在某个 XML 文件中看到它,但事实并非如此。
  • 2018 年 10 月的 Xcode 10 仍然是同样的问题...

标签: ios xcode storyboard


【解决方案1】:

我目前的结论是 xcode (7.3.1) 包含 bug(或 shortcoming)。

如果我终止 xcode 然后打开我的新项目,那么一切看起来都很好。

如果我随后打开旧项目,并在该项目中打开旧情节提要,则虚假项目符号链接在我的新项目中变得可见。

我的猜测是,xcode 会扫描当前在任何项目中打开的所有故事板,以找到诸如“buyButton”之类的出口名称和故事板。

【讨论】:

  • ...它在 Xcode 11.1(2019 年 11 月)中继续。必须在现有项目的副本中观察相同的行为。
【解决方案2】:

重启 Xcode 后对我来说解决了。现在它工作正常。

【讨论】:

    【解决方案3】:

    终于想出了另一个解决方案我们也可以通过以下步骤从 Storybord 中删除连接:-

    找到您的连接并将其删除:-

    【讨论】:

    • +1 谢谢,很高兴知道可以以 xml 格式打开故事板!但我不认为我的新故事板存储了连接。它存储在旧情节提要中!我可能找到了另一种与重新启动 xcode 相关的解决方案。
    • 这仍然是 Xcode 8.3.3 的问题,此解决方案无法解决它。检查源代码时,只存在正确的连接。
    【解决方案4】:

    只需将名称中的一个字母更改为导致与情节提要的关系中断并将其再次链接到新情节提要,希望对您有所帮助。

    【讨论】:

    • 是的,链接断开了。但是当我把名字改回来时,它又出现了。这意味着我的新 xcode 项目链接到我的旧项目,我不希望这样。
    • 为什么不删除所有链接并复制内容然后再次加入,让我们看看会发生什么。
    【解决方案5】:

    我也有同样的问题。要解决这个问题,您应该(对于 macOS Catalina 10.15.4,Xcode 版本 11.1):

    1. 关闭您的项目并关闭 Xcode
    2. 打开/Users/XXXXX/Library/Developer/Xcode/DerivedData 并删除您的项目缓存
    3. 打开/Users/ХХХХХ /Library/Developer/Xcode/DerivedData/ModuleCache.noindex并删除该目录下的所有缓存
    4. 再次打开您的项目并单击Product > Build

    【讨论】:

      【解决方案6】:

      试试这个:-

      点击出口点

      单击 Main.Storyboard 将引导您的位置

      单击视图控制器,您将看到您的插座已连接

      通过单击关闭按钮删除连接,您就可以开始了。

      【讨论】:

      • 不,它不起作用,当我单击 Main.storyboard 时,它会从旧项目中打开故事板!
      • 有什么问题从旧项目中删除链接保存并再次连接也许会起作用。
      • 问题是我不想更改旧项目的storyboard(我假设连接存储在旧的storyboard文件中,但这个假设可能不正确)
      • 比用下划线亲爱的。
      • 如果您的 Xcode 项目正在引用另一个项目中的文件,您可以使用 Utilities 面板中的 File Inspector 重定向到正确的位置。步骤是:在 Project Navigator 中选择问题文件,在 Utilities 面板中选择 File Inspector,查看 Xcode 认为的完整路径,单击 File Inspector 的文件夹图标打开“选择文件”对话框,导航到正确位置的正确文件,然后单击“选择”按钮。
      【解决方案7】:

      截至 2017 年 6 月 25 日,这仍然是 Xcode 8.3.3 的问题。

      我唯一成功的解决方案是更改实体的名称。

      什么对我不起作用

      • 清理、清理项目构建文件夹

      • 重启 Xcode

      • 将 Xcode 升级到最新版本(对我来说也存在于 8.1 和 8.2 中)
      • 关闭我打开的另一个项目
      • 删除并重新添加连接
      • 检查源代码并从 xml 中删除重复的连接
      • 单击任何位置以查看引用、删除它们并重新添加。

      【讨论】:

      • @ragnarius,如果此解决方案适合您,请点击投票得分下方的复选框以接受我的回答作为正确的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-07
      • 1970-01-01
      • 2021-05-06
      • 1970-01-01
      • 2020-09-18
      • 2015-04-29
      相关资源
      最近更新 更多