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

@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

当前回答

myString.toInt() -将字符串值转换为int。

快3.倍

如果你在字符串中隐藏了一个整数,你可以使用整数的构造函数进行转换,如下所示:

let myInt = Int(textField.text)

与其他数据类型(Float和Double)一样,你也可以使用NSString进行转换:

let myString = "556"
let myInt = (myString as NSString).integerValue

其他回答

我最近也遇到了同样的问题。下面的解决方案对我来说是可行的:

        let strValue = "123"
        let result = (strValue as NSString).integerValue

斯威夫特3.0

试试这个,你不需要检查任何条件,我已经做了一切,只是使用这个函数。发送任何字符串,数字,浮点数,双精度等。您将得到一个数字作为值,如果它无法转换您的值则为0

功能:

func getNumber(number: Any?) -> NSNumber {
    guard let statusNumber:NSNumber = number as? NSNumber else
    {
        guard let statString:String = number as? String else
        {
            return 0
        }
        if let myInteger = Int(statString)
        {
            return NSNumber(value:myInteger)
        }
        else{
            return 0
        }
    }
    return statusNumber
}

用法: 在代码中添加上述函数并转换使用 让myNumber = getNumber(number: myString) 如果myString包含数字或字符串,则返回数字,否则返回0

示例1:

let number:String = "9834"
print("printing number \(getNumber(number: number))")

输出:打印号9834

示例2:

let number:Double = 9834
print("printing number \(getNumber(number: number))")

输出:打印号9834

示例3:

let number = 9834
print("printing number \(getNumber(number: number))")

输出:打印号9834

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

你可以使用NSNumberFormatter(). numberfromstring (yourNumberString)。这很好,因为它返回一个可选的,然后你可以用if let测试,以确定转换是否成功。 如。

var myString = "\(10)"
if let myNumber = NSNumberFormatter().numberFromString(myString) {
    var myInt = myNumber.integerValue
    // do what you need to do with myInt
} else {
    // what ever error code you need to write
}

斯威夫特5

var myString = "\(10)"
if let myNumber = NumberFormatter().number(from: myString) {
    var myInt = myNumber.intValue
    // do what you need to do with myInt
  } else {
    // what ever error code you need to write
  }

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

let bytesInternet : Int64 = Int64(bytesInternetString)!