当我将Xcode 6 Beta中的部署目标从IOS 8(编译,可在模拟器上测试)更改为IOS 7.1(编译,可在模拟器上测试)以便我可以在我的设备(5s)上测试它时,我的代码将无法编译了。
有问题的一行是:
let distanceToTravel: CGFloat = (2.0*fabsf(location.x - self.playerNode!.position.x))/self.frame.width
编译错误表示无法找到成员position.x
当我将distanceToTravel设置为固定值时,我可以在手机上测试它, 但是纹理不会被加载。
有没有人与XCode 6 Beta + swift有任何类似的问题?
答案 0 :(得分:1)
问题在于fabsf
需要CFloats
。但location.x
和self.playerNode!.position.x
为CGFloats
,而非CFloats
。所以你需要做的就是这样投射它们:
let distanceToTravel: CGFloat = CGFloat(2.0*fabsf(CFloat(location.x) - CFloat(self.playerNode!.position.x))) / self.frame.width
OH,我是否提到你需要投出结果?