我正在关注iOS
开发的斯坦福视频,我正在Xcode 7
使用Swift 2
。
我逐行从视频中编写代码,但是我一直收到错误。
import UIKit
class ViewController: UIViewController
{
@IBOutlet weak var display: UILabel!
var userIsTyping = false
@IBAction func AppendDigit(sender: UIButton) {
let digit = sender.currentTitle!
if userIsTyping {
display.text = display.text! + digit
} else {
display.text = digit
userIsTyping = true
}
}
var operandStack = Array<Double>()
@IBAction func enter() {
userIsTyping = false
operandStack.append(displayValue)
}
var displayValue: Double {
get{
return NSNumberFormatter().numberFromString(display.text!)!.doubleValue
}
set (newValue){
display.text = "\(newValue)"
userIsTyping = false
}
}
}
在我返回的行
NumberFormatter().numberFromString(display.text!)!.doubleValue
我收到错误
主题1:EXC_BAD_INSTRUCTION(代码= EXC_1386_INVOP,子代码= 0x0)
答案 0 :(得分:1)
转换可能会失败。结果可能是零。 &#34;!&#34;意味着&#34;编译器,我百分百肯定结果永远不会是零,所以如果它永远是零那么请崩溃&#34;。猜猜是什么,有时它是零。
使用&#34;如果让&#34;。
PS。我认为采用用户界面元素(如按钮的标题)并假设它们具有某些值是非常非常不健康的。
答案 1 :(得分:0)
用更简单的方法替换那个return语句要好得多:
return Double(display.text!)!
答案 2 :(得分:0)
让Number =(NSNumberFormatter()。numberFromString(xtxt.text!)as!Double)
return Number