gpt4 book ai didi

xcode - 如何将 double 值等同于字符串标签? (这是我在 xcode Swift 中构建的计算器应用程序)

转载 作者:行者123 更新时间:2023-11-30 14:00:45 24 4
gpt4 key购买 nike

//
// 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com