xCode 6最终版本中的编译器错误

时间:2014-09-20 23:06:47

标签: xcode swift sprite-kit xcode6

我正在使用beta Xcode在swift StriteKit中使用游戏。但是现在有了最终版本,我发现了很多错误,除了这个之外我还能修复。

这是我的原始代码,没有使用BETA XCODE的错误:

bird.zRotation = self.clamp(-1, max: 0.5, value: bird.physicsBody.velocity.dy *     (bird.physicsBody?.velocity.dy < 0 ?0.003 : 0.001 ))

但xCode最终版本表明在physicsBody上有编译器错误,说明:&#39; SKphysicsBody?&#39;没有名为velocity的成员。 我通过添加&#39;?&#39;来解决这个问题。 physicsBody的可选类型。

bird.zRotation = self.clamp(-1, max: 0.5, value: bird.physicsBody?.velocity.dy *     (bird.physicsBody?.velocity.dy < 0 ?0.003 : 0.001 ))

但是这次出现了一个新的错误,这次是在说明GGFloat没有解开的情况下,我尝试使用&#39;!&#39;在dy之后或者&#39;?&#39;仍然是编译器在这样做之后建议删除它,说明Postfix&#39;?&#39;应该有可选的类型;类型是CGFloat。

我试图查找有关确切情况的信息,但我无法修复此错误。请帮忙。

1 个答案:

答案 0 :(得分:0)

有可能Xcode在尝试对潜在的nil值执行算术时感到困惑。我会尝试将选项移出self.clamp来电。另外,请注意三元检查周围的间距:它可能会尝试打开?运算符旁边的值。

尝试

if let dy = bird.physicsBody?.velocity.dy {
  self.clamp(-1, max: 0.5, value: dy * ((dy < 0) ? 0.003 : 0.001)
}
相关问题