嗨,我刚接过斯威夫特,正在跟随斯坦福大学的开放课程。当我在userIsInTheMiddleOfTyping = false
之前放置线时,我正在制作这个计算器并在func输入部分的operandStack.append(displayValue)
行获得断点。将线放在函数的底部后,问题就解决了。但为什么?
另外,我没有得到get和设置在displayValue部分的部分。任何人都可以帮助解释这部分是如何执行的。 newValue来自哪里?为什么它代表显示器上的任何值?遵循代码。我将不胜感激任何答案和评论!
class ViewController: UIViewController {
@IBOutlet weak var display: UILabel!
var userIsInTheMiddleOfTypingAnNumber = false
@IBAction func AppendDigit(sender: UIButton) {
let digit = sender.currentTitle!
if userIsInTheMiddleOfTypingAnNumber {
display.text = display.text! + digit
}
else{
display.text = digit
userIsInTheMiddleOfTypingAnNumber = true
}
}
var operandStack = Array<Double>()
@IBAction func enter() {
operandStack.append(displayValue)
println("operandStack=\(operandStack)")
userIsInTheMiddleOfTypingAnNumber = false
}
var displayValue: Double{
get{
return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
}
set{
display.text = "\(newValue)"
userIsInTheMiddleOfTypingAnNumber = false
}
}
}
答案 0 :(得分:0)
get
和set
是Swift中用于定义属性的自定义getter和setter的关键字。
newValue
是将在分配器末尾分配给变量的新值的默认名称,它允许您在分配之前检查各种内容。
对于你问题的第一部分,我并不完全明白什么不适合你。