13

这是一个真正的'WTF?我的时刻。

我从另一个项目中复制了一些类,包括复制和粘贴代码和一些 UIBulder 组件。没有被复制的是 XIB 文件(我从 XIB 转到情节提要)。

我的标签/滑动识别器没有激活,当我深入研究时,我发现唯一可以解释的是,不知何故,我正在连接 XIB 文件。(当我单击标题中 IBAction/IBOutlet 行旁边的小按钮时,它会显示故事板和 xib 文件都已连接)。

我没有在任何我能找到的地方引用该文件,它只是在 Xcode 中以某种方式神奇地识别出来。我不知道该怎么办,如何解决这个问题。

有人有想法么?

编辑:真正烦人的一点是,当我检查那里时,该文件似乎不在我的文件列表中,我不能这样删除引用。而且由于它引用了原始项目中的文件,我不能只删除它。(在任一项目中所做的任何更改都会导致两个项目中的更改;出于某种原因,它们都使用相同的 xib 文件)。我应该可以简单地删除对 xib 文件的引用,但我找不到该引用。

4

4 回答 4

15

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

在此处输入图像描述

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

好吧,好消息是你真的没有什么需要解决的。您没有复制一些深入的、难以找到的参考链接。Xcode 只是感到困惑,因为两个项目中的 View Controller 和 outlet 名称相同。基本上只是忽略那个小圆圈所说的。您可以关闭第一个项目,Xcode 最终会解决问题。右键单击故事板中的视图以查看当前项目中真正存在的引用插座。(有关更多详细信息,请参阅我的完整答案。)

无需删除派生数据。无论如何,这并不能解决问题。只需尝试再次同时打开两个项目,您将得到相同的奇怪行为。

我想出的方法是分别创建两个新项目,它们具有同名的视图控制器和同名的引用插座。我从来没有复制过任何东西,但 Xcode 显示一个正在引用另一个。就像我说的,忽略小圆圈。

于 2016-05-19T13:39:48.843 回答
13

我只是有同样的问题。为我解决的问题是关闭两个项目,从两者中删除派生数据,然后重新打开目标项目。

我同意,这是一个疯狂的问题。

于 2013-12-04T19:00:30.840 回答
3

我确信这个问题可能会发生,我修复它删除 XCode 的派生数据文件夹的内容。

我只想添加如何删除这些文件的步骤:

  1. 不要删除 DerivedData 文件夹。
  2. 转到首选项(命令,)>位置选项卡
  3. 在派生数据上,您将看到路径,单击右指向箭头(将在 Finder 中打开该位置)
  4. 关闭 XCode
  5. 选择 DerivedData 文件夹中的所有文件(不要选择父文件夹)和(命令删除)或将它们移动到垃圾箱,然后清空垃圾箱
  6. 打开项目,你就完成了

我希望它可以帮助某人

于 2013-11-25T14:12:54.000 回答
1

除非 xib 文件在项目中。它不应该有指向它的链接。

xib 文件连接到 .h 文件。不是相反。

您可能想要删除情节提要中的连接并重新连接它们。

还要确保故事板是正在启动的 UI,并且导航堆栈上的项目实际上是故事板页面。但是您应该能够同时将情节提要和 xib 文件连接到该类。您只是不能将一个 IBOutlet 连接到单个 ui 组件中的多个对象(例如,故事板上的两个按钮不能同时连接到@property IBOutlet UIButton *myCurrentButton您必须为每个连接有一个单独的 IBOutlet。另一方面,可以连接任意数量的操作到 IBAction。这就是为什么您要(id) sender执行每个操作的原因。

我不知道这是否正是您所遇到的,但我希望理解可以帮助您调试问题。

于 2012-08-22T18:51:27.807 回答