该应用程序基本上通过输入初始和最终速度和时间来计算加速度,然后使用一个公式来计算加速度。但是,由于文本框中的值是字符串,我无法将它们转换为整数。
@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
用这个:
// get the values from text boxes
let a:Double = firstText.text.bridgeToObjectiveC().doubleValue
let b:Double = secondText.text.bridgeToObjectiveC().doubleValue
// we checking against 0.0, because above function return 0.0 if it gets failed to convert
if (a != 0.0) && (b != 0.0) {
var ans = a + b
answerLabel.text = "Answer is \(ans)"
} else {
answerLabel.text = "Input values are not numberic"
}
OR
使你的UITextField KeyboardType为DecimalTab从你的XIB或故事板,并删除任何if条件做任何计算,即。
var ans = a + b
answerLabel.text = "Answer is \(ans)"
因为键盘类型是DecimalPad,没有机会输入其他0-9或。
希望这对你有帮助!!
你可以使用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
}
myString.toInt() -将字符串值转换为int。
快3.倍
如果你在字符串中隐藏了一个整数,你可以使用整数的构造函数进行转换,如下所示:
let myInt = Int(textField.text)
与其他数据类型(Float和Double)一样,你也可以使用NSString进行转换:
let myString = "556"
let myInt = (myString as NSString).integerValue