收到有关不兼容指针类型的警告

Posted

技术标签:

【中文标题】收到有关不兼容指针类型的警告【英文标题】:Getting a warning about incompatible pointer types 【发布时间】:2013-12-18 23:40:12 【问题描述】:

我收到以下代码的警告

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

警告显示使用“SKAction *”类型的表达式初始化“SKSpriteNode *”的指针类型不兼容。

我是 Objective C 和 Xcode 的新手,所以我不能完全弄清楚这里发生的问题。感谢您的帮助=)。

【问题讨论】:

【参考方案1】:

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

SKAction *spaceshipAction = [SKAction ...

【讨论】:

【参考方案2】:

错误告诉你你在做什么:

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

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

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

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

【讨论】:

以上是关于收到有关不兼容指针类型的警告的主要内容,如果未能解决你的问题,请参考以下文章

自定义 UITableViewCell 的不兼容指针类型警告

指针类型不兼容??奇怪的

警告:从 C 中不兼容的指针类型返回

qsort 的第四个参数的“不兼容的指针类型”编译器警告

在 iOS 7 之前的项目中编译警告“不兼容的指针类型初始化 'UIImage *' 使用类型为'CIImage * _Nullable”的表达式

Xcode 4.6 iPhone/iPad 复制字段,使用 setText“不兼容的指针类型”