var debugLabel : SKLabelNode!
override func update(currentTime: NSTimeInterval) {
debugLabel!.text = "Ang: \(getFormattedNum(ball.physicsBody?.angularVelocity! ))"
}
func getFormattedNum( num:CGFloat ) ->String {
var formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
return formatter.stringFromNumber(num)!
}
override func didMoveToView(view: SKView) {
super.didMoveToView(view)
debugLabel = childNodeWithName("deBugger") as SKLabelNode
...
}
地点修复它来回切换是更新功能中此属性末尾的感叹号: ball.physicsBody?.angularVelocity!
随着!要么 ?错误是" postfix的操作数!应该有可选的类型;类型是" CGFloat"。没有可选指示符,错误是"可选类型的值" CGFloat?"没有打开......
请注意" deBugger"是sks中标签的名称。
答案 0 :(得分:1)
问题是你有一个可选的链ball.physicsBody?.angularVelocity
。这是一个可选的结果,因为它是一个可选的链。遗憾的是,您无法通过向!
添加ball.physicsBody?.angularVelocity!
来展开,因为!
也是一个可选链(angularVelocity
仅展开angularVelocity
而不是整个链条)。此外,在这种情况下,CGFloat
的类型为debugLabel!.text = "Ang: \(getFormattedNum((ball.physicsBody?.angularVelocity)! ))"
,因此您无法解开它。您需要在可选链周围添加括号,然后您可以打开它:
{{1}}