做一个计算多次的计算器

Make a calculator that calculates multiple times

我对 swift 比较陌生。我使用 NSExpression 在 swift 中制作了一个简单的基于文本的计算器。然而,我有一个问题:这个基于文本的计算器每次都能完美地计算输入的第一个表达式(从 2+4 到 9*7-1/3*2+1 的表达式),但第二次,输出的结果始终与第一个结果相同(不会再次计算)。这是我的代码的基础知识:

我从视图控制器调用它,并使结果标签的文本等于在下方 swift 文件中找到的结果:

x.savetextfinal = calculatortextfield.text! // Variable x.savetextfinal, created elsewhere in a struct, is assigned to the user's input.
// Now the magic happens in calculatormath.swift (see below)
print("this is the result \(z.nsexpress2)")
equalsresultlabel.text = "Result is (z.nsexpress2)."

然后这个代码块,在一个单独的 swift 文件中找到,在我看来似乎发生了。它使用 NSExpression 将表达式从字符串转换为 NSExpression,然后创建一个变量并将 NSExpression "mathExpression" 的结果 "result" 作为字符串分配给它。

import Foundation
var nsexpress:String = String(x.savetextfinal)
var mathExpression = NSExpression(format: nsexpress)
var result:Float = Float((mathExpression.expressionValueWithObject(nil, context: nil) as? NSNumber)!)

struct calculatoranswer {
var nsexpress2:String = String(result)
}
var z = calculatoranswer()

任何关于为什么这个计算器不会计算一个表达式的想法将不胜感激!谢谢

我所要做的就是将所有计算代码放入一个函数中,然后在我的视图控制器中调用它。我计算 swift 文件中的所有内容都放在一个函数中,我把它放在一个结构中,然后调用该函数。一切都按计划进行,我有我的计算器。结构体和函数,对我这样的初学者来说也不难