加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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类型的对象,它没有该属性.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读