Ios Swift在展开可选值时意外发现nil
我正在关注斯坦福大学关于iOS 8开发的课程。我对我的代码有一些问题。这是我的全部密码Ios Swift在展开可选值时意外发现nil,ios,swift,Ios,Swift,我正在关注斯坦福大学关于iOS 8开发的课程。我对我的代码有一些问题。这是我的全部密码 import UIKit class ViewController: UIViewController { @IBOutlet weak var display: UILabel! var userIsEnterADigit = false @IBAction func appendDigit(sender: UIButton) { let digit = send
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var display: UILabel!
var userIsEnterADigit = false
@IBAction func appendDigit(sender: UIButton) {
let digit = sender.currentTitle!
if userIsEnterADigit{
display.text = display.text! + digit
}else{
display.text = digit;
userIsEnterADigit = true
}
}
var operandStack = Array<Double>()
@IBAction func enter() {
userIsEnterADigit = false
operandStack.append(displayValue)
print("operandStack = \(operandStack)")
}
var displayValue :Double {
get{
return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
}
set{
display.text = "\(newValue)"
userIsEnterADigit = false
}
}
}
有错误:
在展开可选值时意外发现nil
我用视频检查代码,没有找到原因。有人能告诉我为什么吗
并帮助我理解display.text=“\(newValue)”
中的newValue
。(为什么会这样?这是swift的语法吗?- !!表示“此变量在此阶段不应为nil。如果为,则为throw”。很可能您的文本无法转换为数字,而将其解析为1的函数具有!所以它抛出
- 你的第二个问题确实是一个“新语法”。这是一种简洁的方法,可以创建字符串,而不必使用带有转义符和变量列表的老式格式
newValue
的来源,因为它似乎没有在代码中的任何地方定义。我不相信戴王炯
已经足够密切地遵循了教程
return NSNumberFormatter().numberFromString(display.text!)!.doubleValue