我收到以下代码的警告
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的新手,所以我无法弄清楚这里发生的问题。谢谢你的帮助=)。
答案 0 :(得分:4)
等号右侧的代码返回指向SKAction对象的指针,但左侧的对象指针类型为SKSpriteNode。只需将该类型更改为SKAction,您可能还需要更改变量名称以更好地反映它的含义。
SKAction * spaceshipAction = [SKAction ...
答案 1 :(得分:1)
错误告诉你你在做什么:
创建SKAction
的实例。将其设置为指向SKSpriteNode
实例的指针。
正确的代码(从编译的角度来看)将是:
SKAction *spaceship = [SKAction sequence: @[...
但是你还没有说你要做什么,所以我不知道它是否在逻辑上是正确的。根据您对runAction:
的使用情况,它看起来有点正确,假设self
是SKNode
个实例。