无法插入新的操作连接错误

时间:2011-08-24 13:37:15

标签: iphone xcode

当我尝试通过将UIButton中的蓝色箭头拖到我的头文件(你知道,XCode 4的这个新功能......)来尝试为UIButton创建新动作时,我得到了这个错误。

当我自己在代码中创建动作并以旧方式连接时,只需将按钮拖动到文件所有者,它就可以正常工作

这是截图: Error screenshot

16 个答案:

答案 0 :(得分:23)

确保您的.m文件存在于项目和磁盘上。使用@implementaiton - @end块确保其正确无误。在Xcode中打开它,关闭它,如果错误仍然存​​在,请重新启动Xcode。

Xcode正试图写入EditPUViewController.m(在dealloc方法等中)但找不到它。

此外,使用 + + + K 来彻底清理项目总是有帮助的

答案 1 :(得分:21)

试试这个:

打开管理器,然后打开项目标签。

清除“派生数据”。 Xcode应该重新索引你的项目,代码意义应该工作。至少为我工作。

答案 2 :(得分:8)

尝试连接动作时遇到了类似的问题。为了解决这个问题,我手动添加了IBAction,然后XCode允许我从按钮连接到代码。

答案 3 :(得分:7)

转到Xcode - >偏好 - >位置标签 - >派生数据 - >明确派生数据。

答案 4 :(得分:2)

我自己遇到了这个问题,但这里提出的方法都不适用于我。上面问题中描述的错误发生在我尝试在我的视图头文件(.h)中创建IBAction时,而在我的实现文件(.m)中我甚至无法拖动一条线。 (Xcode甚至不会显示这个小弹出窗口,您可以在其中命名您的动作。)

经过几个小时的努力,我发现我无法创建IBAction的原因是因为我从.m文件中删除了最后一行。 当您创建新的Objective-C文件时,Xcode会在@end分隔符后自动添加一个空行。

不要问我为什么 - 但如果你删除该行,Xcode不会让你创建任何行动或出口。 (这显然是一个Xcode错误。)

Wrong

Right

答案 5 :(得分:1)

我注意到.m文件已在en.lproj文件夹中移动。

只需从Xcode中删除(仅引用).m文件,然后将.m移出en.lproj。再加一次。别担心,你会恢复所有的联系。

它将解决问题。

答案 6 :(得分:1)

我最近遇到过这个问题。我很快意识到原因是我自己做的。 我之前禁用了XCode索引(过去常常占用我的RAM),在终端窗口中使用以下代码:

defaults write com.apple.dt.XCode IDEIndexDisable 1

要将XCode恢复为默认状态,我在终端窗口中使用了以下行:

defaults write com.apple.dt.XCode IDEIndexDisable 0

瞧!一切都很好..

答案 7 :(得分:0)

我得到了同样的错误。重新启动Xcode没有为我修复它(我不想重启)。该文件也不在en.lproj文件夹中(在我从Xcode中删除后,也没有在通常的项目文件夹中)。我的修复方法是使用不同的名称重新创建文件(仅在文件名中使用不同的大小写不足以修复它...必须完全不同的名称。)

答案 8 :(得分:0)

当我创建一个类,删除它然后创建一个具有相同名称的新类时,我遇到了这个问题。解决方法不是重用已删除类的名称,而是使用新名称。因此,我会说这是XCode方面的一个错误。

答案 9 :(得分:0)

  • 删除新创建的类(不要删除它,只需删除链接然后重新添加它);
  • 保存Xib文件;
  • 重新启动Xcode;
  • 如果仍然无效,您可能还想删除派生数据。

这似乎是因为XCode缺少引用或需要手动刷新。

答案 10 :(得分:0)

就我而言,删除笔尖(.xib)的引用并再次添加它解决了这个问题。

答案 11 :(得分:0)

在我的情况下,我偶然选择了arm64版本。编译时出现错误,但我没有注意到,因为我正在尝试连接动作的UI。

然而错误完全相同。在更改为另一个体系结构以便项目编译后,我可以像往常一样按住ctrl按钮来连接操作。

答案 12 :(得分:0)

user2175983和AstroCB答案对我来说效果很好:

  1. 只需在终端中运行此命令行即可删除所有派生数据:

    rm -frd~ / Library / Developer / Xcode / DerivedData / *

  2. 重启Xcode

答案 13 :(得分:0)

我刚删除了Xcode项目中对该文件的引用,然后将文件从查找器重新添加回项目...

答案 14 :(得分:0)

在Xcode 9中,将项目中的.m文件从一个目录移动到另一个目录后,我遇到了相同的错误。删除对.m文件的引用并再次添加它们确实解决了该问题。

答案 15 :(得分:-1)

我找到了答案。为每个视图控制器创建新文件(目标C文件)时,必须通过单击项目名称旁边的框进行检查。这样您的项目就包含了这个文件。否则,此错误将持续存在,因为即使创建了项目,项目也未连接到该文件。