我正在尝试在swift中构建一个计算器,但它似乎不起作用。我真的不知道如何解释它,但这里有一个例子:如果我总结1 + 2它返回12而不是3。
这是我的代码。请注意,num1
是操作的第一部分,num2
是第二部分。
var num1 : String = ""
var num2 : String = ""
@IBOutlet weak var label: UILabel!
@IBAction func button(sender: UIButton) {
var currentnumber = self.label.text
var sendertag = String(sender.tag)
self.label.text = currentnumber! + sendertag
}
@IBAction func sum(sender: UIButton) {
num1 = self.label.text!
self.label.text = ""
}
@IBAction func enter(sender: UIButton) {
num2 = self.label.text!
num1.toInt()
num2.toInt()
self.label.text = num1 + num2
}
答案 0 :(得分:1)
问题是因为您尝试对整数求和,但实际上是在追加字符串时
self.label.text = currentnumber! + sendertag
两者都是字符串(你可以检查Xcode上的类型)。
你想要做的是添加这两个数字,所以你必须将它们解析为Integer,你可以通过执行以下操作来实现这个目的
self.label.text = String(Int(current number!)! + Int(sendertag)!)
这是首先解析为整数字符串并将它们相加,然后将结果解析回字符串,因为标签的文本必须是字符串。
答案 1 :(得分:0)
当您将两个整数的和分配到字符串值中时,它可以隐式地输入从Int到String的转换
替换
self.label.text = num1 + num2
与
var result: Int =num1+num2
self.label.text=String(result)
在目标c中显示错误:Xcode 4.2或更高
ARC不允许将'int'隐式转换为'NSString *'