objective-c - int 属性出现无法识别的选择器

标签 objective-c ios properties cocos2d-iphone unrecognized-selector

我有一个名为 Projectile 的类(它继承自 Cocos2D CCSprite 类,但我怀疑这与问题有关)。它只包含一个名为“type”的整数,我已将其制成一个属性。

射弹.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 清楚地知道该属性,因为它会自动完成它并且不会给我一个错误说它不存在。

我在其他地方也有非常相似的代码,可以完美执行。

如果有人能阐明这一点,我将不胜感激,我相信我可以用另一种方式解决它,但我想了解为什么这在可能的情况下不起作用。

最佳答案

是的,当你说 Projectile *newProjectile = [CCSprite spriteWithSpriteFrameName:@"Bullet.png"]; 时,newProjectile 将是 CCSprite 类型的对象,它没有该属性.

关于objective-c - int 属性出现无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13972005/

相关文章:

ios - 更改 MDCTextField Outlined 文本字段的事件边框颜色

iphone - 存储大量数据和潜在的 App Store 提交问题

ios - 来自 NSDictionary 的具有文件路径的 JSON 字符串

ios - 使用 self.property 释放属性 - 分析器中的错误

java - 使用 System.getProperty() 获取 @CucumberOptions 标签属性

iphone - 如何将 XCode 项目保存为模板以供其他应用使用?

objective-c - Main.1 输出文件在 XCode 中有何作用?

objective-c - cocoa:如何重新打开关闭的窗口

ios - 这是一个好的编程习惯吗? if 条件是返回带有回调的 bool 的方法

Javascript 函数作为对象属性返回