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