Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 目标-C:“游戏玩家”可能对“-addChild:z”没有反应_Iphone_Objective C_Cocos2d Iphone - Fatal编程技术网

Iphone 目标-C:“游戏玩家”可能对“-addChild:z”没有反应

Iphone 目标-C:“游戏玩家”可能对“-addChild:z”没有反应,iphone,objective-c,cocos2d-iphone,Iphone,Objective C,Cocos2d Iphone,一般来说,我对Objective-C和iPhone开发还不熟悉。我正在使用Cocos2d iphone库作为游戏引擎,试图开发一个非常简单的游戏 我一直在遵循一些教程来掌握窍门,并试图建立一个非常简单的关卡,在这个关卡中,一些球使用花栗鼠物理引擎在屏幕上反弹。下面是导致问题的文件的定义和实现。编译期间生成的警告是: 游戏场景.m:69:警告:“游戏玩家”可能不会响应“-addChild:z:” GDB还提供以下内容: 由于未捕获的异常“NSInvalidArgumentException”而终止

一般来说,我对Objective-C和iPhone开发还不熟悉。我正在使用Cocos2d iphone库作为游戏引擎,试图开发一个非常简单的游戏

我一直在遵循一些教程来掌握窍门,并试图建立一个非常简单的关卡,在这个关卡中,一些球使用花栗鼠物理引擎在屏幕上反弹。下面是导致问题的文件的定义和实现。编译期间生成的警告是:

游戏场景.m:69:警告:“游戏玩家”可能不会响应“-addChild:z:”

GDB还提供以下内容:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“***-[GameLayer addChild:z::]:发送到实例0xf6ff90的选择器无法识别”


如果我注释掉这一行,当调用GameLayer时,程序将不再崩溃。用注释有问题的行编译时警告是因为@interface部分没有任何名为-addChild:z:


运行时错误是因为@implementation部分没有-addChild:z:。

我在Cocos2D 0.8中遇到了这个问题,并开发了一个解决方法,在layer类中声明一个数组,该数组将包含要跟踪的子对象

@interface GameLayer : Layer
{
    cpSpace *space;
    NSMutableArray* children;
}
然后,您可以使用添加子项

[[self children] addObject:myObject];

可以很容易地将该数组的内容操纵到您可能想要执行的任何操作。

检查CoCoS2D2D 0.8.1,上述代码应该可以工作。@interface不需要声明addChild:z:,因为GameLayer继承Layer,Layer继承CocosNode,CocosNode实现并声明addChild:z:
@interface GameLayer : Layer
{
    cpSpace *space;
    NSMutableArray* children;
}
[[self children] addObject:myObject];