31

我曾多次收到此错误,但不清楚通常是什么原因导致该错误。在堆栈溢出和谷歌上寻找了一个多小时后,我仍然没有答案。有人可以帮忙吗?

我已经看到了几个具体的答案,但没有说明错误发生的原因,只有“do x”或“do y”。

我还没有包含代码,因为我想知道这个错误通常发生的原因,所以我可以在以后遇到这个错误时修复我的代码。

4

7 回答 7

11

它可能发生的原因有很多,但通常是说在它标记的代码行中,它没有看到任何证据表明您引用的选择器位于它认为对象具有的类型的接口中。

在这个例子中,

没有可见的界面错误

他们用错误的类型声明了operandStack。

在这一

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=3312

他们在选择器名称中有错字

于 2012-04-30T17:13:31.740 回答
2

我刚遇到这个问题;我的原因是我将方法设置为类方法而不是实例方法。很傻。

于 2012-07-09T13:31:01.090 回答
2

另一个原因可能是在库中使用类别并且您没有在其他链接器标志中设置 -ObjC(或 -all_load)

于 2014-11-04T20:01:43.653 回答
2

您是否有机会在 Xcode 4.2(或更低版本)上运行在 Xcode 4.3 上编写的代码?在4.3+ 中,Xcode 根本不需要你声明私有方法,它只是假设写在实现文件中的方法(接口中没有声明)是私有的。但在Xcode <= 4.2 中,这会引发错误,并且这些方法至少需要私下声明

于 2012-04-30T18:05:35.377 回答
1

另一个常见的错误是忘记写 [someInstance setSomeValue :3]; 而不是 [someInstance someValue:3] (<- 错误)。那是发生在我身上的事。

于 2012-11-02T15:13:03.140 回答
0

当我遇到这个问题时,事实证明 Xcode 在更改 Git 分支后没有重新索引文件。解决办法是Delete Derived Data

使用 Xcode 10.0 版File -> Workspace Settings...(or Project Settings...) -> click on the little green circle and manually remove all files in DerivedData folder

在此处输入图像描述

于 2018-10-10T09:29:18.950 回答
0

我有这个问题NSSavePanel -beginSheetModalForWindow::,这显然存在。我尝试进行干净的重建以及删除 DerivedData,但没有运气。我已经复制粘贴然后进行了修改,但我将其注释掉并输入了调用-beginSheetModalForWindow并开始工作。据我所知,我在最初的电话中没有任何错误。

于 2022-01-10T02:23:53.947 回答