获取有关不兼容指针类型的警告

时间:2013-12-18 23:40:12

标签: objective-c sprite-kit incompatibletypeerror

我收到以下代码的警告

SKSpriteNode *spaceship = [SKAction sequence: @[
                          [SKAction performSelector:@selector(newSpaceship) onTarget:self],
                          [SKAction waitForDuration:0.10 withRange:0.15]]];
[self runAction: spaceship];

警告显示不兼容的指针类型,初始化'SKSpriteNode *',表达式为'SKAction *'。

我是Objective C和Xcode的新手,所以我无法弄清楚这里发生的问题。谢谢你的帮助=)。

2 个答案:

答案 0 :(得分:4)

等号右侧的代码返回指向SKAction对象的指针,但左侧的对象指针类型为SKSpriteNode。只需将该类型更改为SKAction,您可能还需要更改变量名称以更好地反映它的含义。

SKAction * spaceshipAction = [SKAction ...

答案 1 :(得分:1)

错误告诉你你在做什么:

创建SKAction的实例。将其设置为指向SKSpriteNode实例的指针。

正确的代码(从编译的角度来看)将是:

SKAction *spaceship = [SKAction sequence: @[...

但是你还没有说你要做什么,所以我不知道它是否在逻辑上是正确的。根据您对runAction:的使用情况,它看起来有点正确,假设selfSKNode个实例。