该应用程序基本上通过输入初始和最终速度和时间来计算加速度,然后使用一个公式来计算加速度。但是,由于文本框中的值是字符串,我无法将它们转换为整数。
@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
Swift 5.0及以上
工作
如果你拆分字符串,它会创建两个子字符串,而不是两个字符串。下面的方法将检查任何并将其转换为0 NSNumber很容易将NSNumber转换为Int,浮动任何你需要的数据类型。
实际的代码
//Convert Any To Number Object Removing Optional Key Word.
public func getNumber(number: Any) -> NSNumber{
guard let statusNumber:NSNumber = number as? NSNumber else {
guard let statString:String = number as? String else {
guard let statSubStr : Substring = number as? Substring else {
return 0
}
if let myInteger = Int(statSubStr) {
return NSNumber(value:myInteger)
}
else{
return 0
}
}
if let myInteger = Int(statString) {
return NSNumber(value:myInteger)
}
else if let myFloat = Float(statString) {
return NSNumber(value:myFloat)
}else {
return 0
}
}
return statusNumber }
使用
if let hourVal = getNumber(number: hourStr) as? Int {
}
传递字符串进行检查并转换为Double
Double(getNumber(number: dict["OUT"] ?? 0)