将字符串转换为int swift

时间:2015-11-11 01:56:22

标签: ios swift

我正在尝试在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
}

2 个答案:

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