28

我不小心将命令按钮的事件设置为“出口”而不是“动作”。由于自动拖动功能,xcode 在 applicationDelegate 和 .h 和 .m 文件中生成了引用。我从 .h 和 .m 文件中删除了该条目,但模拟器无法运行,因为它仍在寻找缺少的参考。我在任何地方都找不到那个出口。我对 iOS 编程相当陌生。任何人都可以为此提出解决方案吗?

4

3 回答 3

41

您必须从界面构建器中的项目中取消连接出口。选择您将插座链接到的 UI 元素,然后在“连接检查器”中将其删除。

在此处输入图像描述

点击小“x”^^^

于 2012-09-08T04:34:50.453 回答
30

我认为人们可能会出于两个不同的原因来到这里,想知道如何摆脱不需要的 Outlet 引用。

  1. 在使用 Interface Builder 时创建了一个不需要的插座。
  2. 从另一个项目 View Controller 复制了一些 Outlet 代码。

这两个原因都很容易解决。

IB中不需要的出口

方法一

右键单击故事板中的视图,然后单击引用插座旁的小 x。

在此处输入图像描述

方法二

右键单击文档大纲中的视图名称。然后单击参考插座旁边的小 x。

在此处输入图像描述

方法三

选择故事板上的视图,然后单击 Connections Inspector。然后您可以单击小 x 以删除插座参考。

在此处输入图像描述

代码中不需要的引用

如果您将视图控制器代码从一个项目复制到另一个项目中,您会注意到插座发生了一件奇怪的事情。它引用了第一个项目的视图,而您从未连接任何插座!

在此处输入图像描述

如果您左键单击小圆圈并单击参考链接,您甚至会被带到另一个项目中的情节提要视图。试图弄清楚如何摆脱这个参考可能会让你发疯。

好吧,好消息是你真的没有什么需要解决的。您没有复制一些深入的、难以找到的参考链接。Xcode 只是感到困惑,因为两个项目中的 View Controller 和 outlet 名称相同。基本上只是忽略那个小圆圈所说的。您可以关闭第一个项目,Xcode 最终会解决问题。使用此答案第一部分中的方法来查看当前项目中的视图是否具有引用插座。

无需删除派生数据。无论如何,这并不能解决问题。只需尝试再次同时打开两个项目,您将得到相同的奇怪行为。我想出的方法是分别创建两个新项目,它们具有同名的视图控制器和同名的引用插座。我从来没有复制过任何东西,但 Xcode 显示一个正在引用另一个。就像我说的,忽略它。

于 2016-05-19T13:26:03.407 回答
4

它也将列在故事板/xib 中的命令按钮插座上。

也从那里删除它,你应该很好。

于 2012-09-08T04:35:00.997 回答