【问题标题】:XCode 6 Beta Swift, SpriteKit: Changing Deployment TargetXCode 6 Beta Swift、SpriteKit:更改部署目标
【发布时间】:2014-07-02 20:40:56
【问题描述】:

当我将 Xcode 6 Beta 中的部署目标从 IOS 8(编译,可在模拟器上测试)更改为 IOS 7.1(编译,可在模拟器上测试)以便我可以在我的设备(5 秒)上对其进行测试时,我的代码将无法编译没有了。

有问题的行是:

      let distanceToTravel: CGFloat = (2.0*fabsf(location.x - self.playerNode!.position.x))/self.frame.width

编译器错误提示找不到成员 position.x

当我将 distanceToTravel 设置为固定值时,我可以在手机上对其进行测试, 但纹理不会被加载。

有人对 XCode 6 Beta + swift 有过类似的问题吗?

【问题讨论】:

  • 你要编译到哪个iDevice?
  • 我正在尝试在 iPhone 5s 上运行它

标签: ios swift sprite-kit xcode6


【解决方案1】:

问题是fabsf 占用CFloats。但是location.xself.playerNode!.position.xCGFloats,而不是CFloats。所以你需要做的就是像这样投射它们:

let distanceToTravel: CGFloat = CGFloat(2.0*fabsf(CFloat(location.x) - CFloat(self.playerNode!.position.x))) / self.frame.width

哦,我有没有提到你需要转换结果?

【讨论】:

  • 我真的不这么认为。我试过铸造,但没有奏效。转换后,我收到与 / 运算符重载有关的错误。 fabsf 也是 CGFloat 类型,我相信 position.x 也是 CGFloat 类型,但是我回家后会检查一下。可能是我选角的时候马马虎虎
  • @MarcHPunkt 我试过这行代码......它编译并运行......相信我;),它的工作原理。而fabsf 确实采用CFloat 并返回CFloat。如果你不相信我,那就试试吧。
  • 我会回来汇报的
  • 它可以工作它可以工作:) 除了纹理,但这似乎是一个不同的问题
  • 是的,重要的是要记住这是一个测试版,除此之外。欢迎使用 Swift。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 2021-04-15
  • 2014-10-29
  • 1970-01-01
  • 2011-10-29
相关资源
最近更新 更多