我已经多次遇到这个错误,并且不清楚导致错误的原因。在堆栈溢出和谷歌上寻找超过一个小时后,我仍然没有答案。有人可以帮忙吗?
我已经看到了几个具体的答案,但没有说出错误发生的原因,只有“做x”或“做y”。
我还没有包含代码,因为我想知道这个错误一般发生的原因所以每当我收到此错误时我都可以修复我的代码。
答案 0 :(得分:11)
它可能会发生很多原因,但通常它会说它标记的代码行,它没有看到任何证据表明您引用的选择器位于它认为对象具有的类型的接口中
在此示例中,
他们声明operandStack的类型错误。
在这一个
http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=3312
他们在选择器名称
中有拼写错误答案 1 :(得分:2)
你是否有机会使用Xcode 4.2(或更少),运行在Xcode 4.3上编写的代码?在 4.3+ Xcode中,您不需要声明私有方法,它只是假设在实现文件中编写的方法(在接口中没有声明)是私有的。但是在 Xcode< = 4.2中,这将引发错误,并且这些方法至少需要私有声明
答案 2 :(得分:2)
我刚遇到这个问题;我的方法是将方法设置为类方法而不是实例方法。很傻。
答案 3 :(得分:2)
另一个原因可能是在库中使用类别而你没有在其他链接器标志中设置-ObjC(或-all_load)
答案 4 :(得分:1)
另一个常见错误是忘记写[someInstance setSomeValue :3];而不是[someInstance someValue:3](< - 错误)。发生在我身上的事情。
答案 5 :(得分:0)