//
// ViewController.swift
// Arithmetic Calculator
//
// Created by Mapondera, Tanaka on 10/7/15.
// Copyright (c) 2015 Mapondera, Tanaka. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var calculatorDisplay: UILabel!
var isEnteredNumber = false
var firstNumber:Double = 0.0
var secondNumber:Double = 0.0
var operation = ""
var result:Double = 0.0
@IBAction func numberPunched(sender: AnyObject) {
// number
var number = sender.currentTitle
if isEnteredNumber {
calculatorDisplay.text = calculatorDisplay.text! + number!!
} else {
calculatorDisplay.text = number
isEnteredNumber = true
}
}
@IBAction func calculationPunched(sender: AnyObject) {
// operation
isEnteredNumber = false
firstNumber = calculatorDisplay.text?
//上面这一行有一个错误代码,内容为“无法将字符串类型的值分配给 double 类型的值”...?
operation = sender.currentTitle!!
}
@IBAction func equalsPunched(sender: AnyObject) {
// equals
isEnteredNumber = false
var result = 0.0
secondNumber = calculatorDisplay.text?
//上面一行的错误代码“?后面必须跟调用、成员查找或 subcrpit”...?
if operation == "+" {
result = firstNumber + secondNumber
} else if operation == "-" {
result = firstNumber - secondNumber
} else if operation == "x" {
result = firstNumber * secondNumber
} else if operation == "/" {
result = firstNumber / secondNumber
} /*else if operation == "^" {
result = pow(firstNumber, secondNumber)
}*/
calculatorDisplay.text = "\(result)"
}
@IBAction func changeSignPunched(sender: AnyObject) {
isEnteredNumber = false
firstNumber = calculatorDisplay.text?
//上面的行有一个错误代码,内容为“?后面必须跟调用、成员查找或 subscrpit”...?
result = firstNumber * (-1)
calculatorDisplay.text = "\(result)"
}
@IBAction func clearPunched(sender: AnyObject) {
firstNumber = 0
secondNumber = 0
isEnteredNumber = false
result = 0
calculatorDisplay.text = "\(result)"
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
最佳答案
您正在尝试将字符串值分配给已声明为 Double 的变量。对于给您带来错误的行,尝试这样的操作:
let firstNumberString = calculatorDisplay.text ?? ""
firstNumber = Double(firstNumberString) ?? 0.0
上面的??
称为nil合并运算符。它将在左侧解开可选值或在右侧返回默认值。
关于xcode - 如何将 double 值等同于字符串标签? (这是我在 xcode Swift 中构建的计算器应用程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33030386/