当我尝试通过将UIButton中的蓝色箭头拖到我的头文件(你知道,XCode 4的这个新功能......)来尝试为UIButton创建新动作时,我得到了这个错误。
当我自己在代码中创建动作并以旧方式连接时,只需将按钮拖动到文件所有者,它就可以正常工作
这是截图:
答案 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错误。)
答案 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)
这似乎是因为XCode缺少引用或需要手动刷新。
答案 10 :(得分:0)
就我而言,删除笔尖(.xib)的引用并再次添加它解决了这个问题。
答案 11 :(得分:0)
在我的情况下,我偶然选择了arm64版本。编译时出现错误,但我没有注意到,因为我正在尝试连接动作的UI。
然而错误完全相同。在更改为另一个体系结构以便项目编译后,我可以像往常一样按住ctrl按钮来连接操作。
答案 12 :(得分:0)
user2175983和AstroCB答案对我来说效果很好:
只需在终端中运行此命令行即可删除所有派生数据:
rm -frd~ / Library / Developer / Xcode / DerivedData / *
重启Xcode
答案 13 :(得分:0)
我刚删除了Xcode项目中对该文件的引用,然后将文件从查找器重新添加回项目...
答案 14 :(得分:0)
在Xcode 9中,将项目中的.m文件从一个目录移动到另一个目录后,我遇到了相同的错误。删除对.m文件的引用并再次添加它们确实解决了该问题。
答案 15 :(得分:-1)
我找到了答案。为每个视图控制器创建新文件(目标C文件)时,必须通过单击项目名称旁边的框进行检查。这样您的项目就包含了这个文件。否则,此错误将持续存在,因为即使创建了项目,项目也未连接到该文件。