该应用程序基本上通过输入初始和最终速度和时间来计算加速度,然后使用一个公式来计算加速度。但是,由于文本框中的值是字符串,我无法将它们转换为整数。

@IBOutlet var txtBox1 : UITextField
@IBOutlet var txtBox2 : UITextField
@IBOutlet var txtBox3 : UITextField
@IBOutlet var lblAnswer : UILabel


@IBAction func btn1(sender : AnyObject) {

    let answer1 = "The acceleration is"
    var answer2 = txtBox1
    var answer3 = txtBox2
    var answer4 = txtBox3

当前回答

我的解决方案是有一个一般的扩展字符串到int转换。

extension String {

 // default: it is a number suitable for your project if the string is not an integer

    func toInt(default: Int) -> Int {
        if let result = Int(self) {
            return result
        }
        else {
            return default  
        }
    }

}

其他回答

//  To convert user input (i.e string) to int for calculation.I did this , and it works.


    let num:Int? = Int(firstTextField.text!);

    let sum:Int = num!-2

    print(sum);

关于int()和Swift 2。X:如果你尝试转换一个大数字的字符串(例如:1073741824),在转换检查后得到nil值,在这种情况下尝试:

let bytesInternet : Int64 = Int64(bytesInternetString)!

最新的swift3这段代码只是简单地将字符串转换为int

let myString = "556"
let myInt = Int(myString)

在Swift 4中:

extension String {            
    var numberValue:NSNumber? {
        let formatter = NumberFormatter()
        formatter.numberStyle = .decimal
        return formatter.number(from: self)
    }
}
let someFloat = "12".numberValue

//Xcode 8.1和swift 3.0

我们也可以通过可选绑定来处理它

let occur = "10"

if let occ = Int(occur) {
        print("By optional binding :", occ*2) // 20

    }