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

Iphone 无法插入新操作连接错误,iphone,xcode,Iphone,Xcode,当我试图通过将蓝色箭头从UIButton拖到我的头文件(你知道,XCode 4的这个新特性…)来创建UIButton的新操作时,我遇到了这个错误 当我自己在代码中创建动作并以旧的方式连接它时,只需从按钮拖动到文件的所有者,它就能很好地工作 以下是截图: 确保项目和磁盘上存在.m文件。使用@implementation-@end块确保它是正确的。在Xcode中打开它,关闭它,如果错误仍然存在,重新启动Xcode Xcode正在尝试写入EditPUViewController.m(在dealoc方法

当我试图通过将蓝色箭头从UIButton拖到我的头文件(你知道,XCode 4的这个新特性…)来创建UIButton的新操作时,我遇到了这个错误

当我自己在代码中创建动作并以旧的方式连接它时,只需从按钮拖动到文件的所有者,它就能很好地工作

以下是截图:

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

Xcode正在尝试写入
EditPUViewController.m
(在
dealoc
方法等中),但找不到它


而且,用它来硬清理项目总是有帮助的⌘+⌥+⇧+K.

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

我注意到.m文件被移动到en.lproj文件夹中

只需从Xcode中删除(仅参考)该.m文件,并将.m移出en.lproj。再添加一次。别担心,你会恢复所有的连接


它会解决问题。

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

尝试以下方法:

打开“管理器”,然后打开“项目”选项卡


清除“派生数据”。Xcode应该重新索引您的项目,然后代码感知应该工作。至少对我有效。

当我创建一个类,删除它,然后创建一个同名的新类时,我遇到了这个问题。解决方法不是重用已删除类的名称,而是使用新名称。因此,我认为这是XCode端的一个bug

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

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

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

我最近遇到了此问题。我很快意识到原因是我自己干的。 我以前在终端窗口中使用以下代码禁用了XCode索引(这会花费很长时间&耗尽我的RAM):

defaults write com.apple.dt.XCode IDEIndexDisable 1
defaults write com.apple.dt.XCode IDEIndexDisable 0
为了将XCode恢复到默认状态,我在终端窗口中使用了以下行:

defaults write com.apple.dt.XCode IDEIndexDisable 1
defaults write com.apple.dt.XCode IDEIndexDisable 0

瞧!一切又好了。

在我的例子中,删除nib(.xib)的引用并再次添加它解决了问题。

在我的例子中,我无意中选择了arm64版本。编译时,我遇到了一个错误,但我没有注意到,因为我正在使用UI尝试连接一个操作


然而,错误是完全相同的。在切换到另一个架构以便项目编译后,我可以像往常一样按住ctrl键连接操作。

转到Xcode->preferences->location tab->Derivated data->clear Derivated dat。

user2175983和AstroCB answer对我来说很好:

  • 只需在终端中运行以下命令行即可删除所有派生数据:

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

  • 重新启动Xcode


  • 我自己也遇到过这个问题,但这里介绍的方法都不适合我。当我试图在视图的头文件(.h)中创建
    iAction
    时,出现了上述问题中描述的错误,而对于我的实现文件(.m),我甚至无法拖动一行。(Xcode甚至不会显示这个可以命名动作的小弹出窗口。)

    在尝试了几个小时后,我发现我无法创建
    iAction
    的原因是因为我从.m文件中删除了最后一行Xcode在创建新的Objective-C文件时,会在分隔符
    @end
    后自动添加一个额外的空行

    不要问我为什么-但是如果删除该行,Xcode将不允许创建任何操作或出口。(这显然是一个Xcode错误。)


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

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

    只有在重新启动comp后,问题才得以解决。但是非常感谢!!确保源文件.m列在Build Phases->Compile Sources列表中。也有帮助:)+1因为这对我有帮助。你能解释一下过程中发生了什么吗?:)如果不起作用,请在执行@Rusy的过程后重新启动Xcode,在代码中重新创建一个
    iAction
    ,然后将其连接到故事板。这很奇怪,但只需添加几个
    iActions
    ,就可以避免重新启动计算机。我对iBootleti做了同样的事情,我已经有了额外的一行。我又加了一个,然后就成功了。奇怪的虫子哈哈