我有一个名为 Projectile 的类(它继承自 Cocos2D CCSprite 类,但我怀疑这与问题有关)。它所包含的只是一个名为“type”的 int,我已将其制成一个属性。
弹丸.h:
@interface Projectile : CCSprite{
int type;
}
@property int type;
@end
弹丸.m:
#import "Projectile.h"
@implementation Projectile
@synthesize type;
@end
现在我要做的就是在我的游戏的主类中设置该属性,如下所示:
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
Projectile *newProjectile = [CCSprite spriteWithSpriteFrameName:@"Bullet.png"];
newProjectile.position = spaceShip.position;
newProjectile.type = kLaser; // defined earlier as #define kLaser 1
[objectsSpriteSheet addChild:newProjectile z:kProjectileZValue];
[projectiles addObject:newProjectile];
return YES;
}
每次我运行它时,它都会在 newProjectile.type = kLaser 行上崩溃:
-[CCSprite setType:]: unrecognized selector sent to instance 0x1ed82f10
出错似乎太简单了,Xcode 清楚地知道该属性,因为它会自动完成它并且不会给我一个错误说它不存在。
我在其他地方也有非常相似的代码,可以完美执行。
如果有人能对此有所了解,我将不胜感激,我相信我可以通过另一种方式解决它,但我想了解为什么如果可能的话这不起作用。