Swift 2从字符串转换为数字

时间:2015-12-24 20:34:27

标签: ios swift

我正在关注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)

3 个答案:

答案 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