objective-c – 为int属性发生无法识别的选择器
发布时间:2020-12-16 09:41:14 所属栏目:百科 来源:网络整理
导读:我有一个名为Projectile的类(它继承自Cocos2D CCSprite类,但我怀疑这与问题有关).它包含的是一个名为’type’的int,我将其作为属性. Projectile.h: @interface Projectile : CCSprite{int type;}@property int type;@end Projectile.m: #import "Projectil
我有一个名为Projectile的类(它继承自Cocos2D CCSprite类,但我怀疑这与问题有关).它包含的是一个名为’type’的int,我将其作为属性.
Projectile.h: @interface Projectile : CCSprite{ int type; } @property int type; @end Projectile.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清楚地意识到属性,因为它自动完成它并没有给我一个错误,说它不存在. 我在其他地方也有非常相似的代码,它们完美地执行. 如果有人能够对此有所了解,我将非常感激,我相信我可以用另一种方式绕过它,但我想了解为什么如果可能的话这不起作用. 解决方法
是的,当你说Projectile * newProjectile = [CCSprite spriteWithSpriteFrameName:@“Bullet.png”];时,newProjectile将是CCSprite类型的对象,它没有该属性.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |