【发布时间】:2013-05-18 20:17:21
【问题描述】:
我已经开始在 cocos2d-iphone 中实现一个游戏了;我在我的项目中使用 ARC。
在我的Levelfinder.h 中声明的类的主要@interface 中,我声明了以下属性:
@property NSMutableArray* pineapples;
在我的主课中,我正在使用这个属性:
for (PineappleModel* pineapple in levelFileHandler.pineapples)
{
b2Body* body = [self createPineappleAt:
[CoordinateHelper levelPositionToScreenPosition:pineapple.position]];
body->SetLinearDamping(pineapple.damping);
[pineapplesDict setObject:[NSValue valueWithPointer:body]
forKey:[NSNumber numberWithInt: pineapple.id]];
}
但是当我运行我的代码时,我看到了以下运行时错误:
SIGABRT '-[LevelFileHandler setPineapples:]: unrecognized selector sent to instance 0x9431c60
我是cocos2d的新手,但是看了这个问题很久,卡住了。任何形式的帮助将不胜感激。
这里是LevelFileHandler.h
@interface LevelFileHandler : NSObject
@property NSMutableArray* pineapples;
@end
现在在我的LevelFileHandler.m 中,我已经像这样使用了我的菠萝属性
self.pineapples = [NSMutableArray arrayWithCapacity:5];
[self.pineapples addObject:pineappleModel]
很明显,这段代码的意图只是创建一个容量为 5 的数组。
【问题讨论】:
-
在这个例子中你没有在任何地方调用
setPineapples:。你确定这是错误所在吗? -
根据错误和您显示的代码,不太可能有人能够帮助您。请发布更多相关代码。 “setPineapples”在哪里被调用?如果这是错误,那么实际显示调用它的代码是有意义的。
-
显示你的堆栈跟踪!!!跟踪将准确告诉您错误发生的位置。
-
LevelfileHandler.h >> Header FIle .. & LevelFileHandler 是我实现的类 ..@NateChandler
-
@Shaqir:您没有提供足够的信息来回答这个问题。当您获得
SIGABRT时,调试器会指示哪一行?崩溃时的stack trace 是什么?LevelFileHandler的@interface是在其中声明了pineapples的地方导入到源文件LevelFileHandler.m中,而LevelFileHandler的@implementation出现在哪里?您在编译期间是否收到任何警告?
标签: iphone objective-c cocos2d-iphone