我正在使用Cocos3D,这个函数给我一个'可能没有响应'警告:
[CClayer.CC3scene someFunctionFromCC3scene];
我知道解决此问题的一种方法是在Function
中设置CCLayer
以CC3scene
拨打someFunctionFromCC3scene
。但还有其他方法吗?谢谢!
答案 0 :(得分:1)
您更有可能没有导入相应的标头。例如#import“CC3Scene.h”。我想如果CC3scene
属性的返回类型是id
而不是实际的类,则会发生这种情况。
或者编译器对此是正确的,并且在运行时它会因“不响应选择器”而崩溃。在这种情况下,CC3Scene不实现someFunctionFromCC3scene
选择器。检查拼写和参数,当然该类实际实现了该选择器并在@interface中声明了它。
答案 1 :(得分:1)
从您的示例来看,有几件事可能会出错:
您可能会将CCLayer
与CC3Layer
混淆。 CC3Layer
是CCLayer
的子类,支持显示3D场景。确保您正在实例化CC3Layer
。
如果您确实在使用CC3Layer
并且CC3Scene
属性(实际上是cc3Scene
)正在返回CC3Scene
的实例,那么,正如LearnCocos2D所示,请验证你正在调用的方法实际上存在于CC3Scene
类中。如果您在此处提供具体的方法名称,那么我可以提供进一步的帮助。
如果someFunctionFromCC3Scene
实际上是在自定义子类中定义和实现的,那么在调用该方法之前,应该将CC3Scene
实例强制转换为自定义子类:
[((MyCC3Scene*)aCC3Layer.cc3Scene) someFunctionFromMyCC3Scene];
...比尔