收到有关不兼容指针类型的警告
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: @[...
但是你还没有说你想要做什么,所以我不知道它是否在逻辑上是正确的。假设self
是SKNode
实例,根据您对runAction:
的使用,它看起来确实是正确的。
【讨论】:
以上是关于收到有关不兼容指针类型的警告的主要内容,如果未能解决你的问题,请参考以下文章
自定义 UITableViewCell 的不兼容指针类型警告
在 iOS 7 之前的项目中编译警告“不兼容的指针类型初始化 'UIImage *' 使用类型为'CIImage * _Nullable”的表达式