399 Stimmen

Umrechnen von String in Int mit Swift

Die Anwendung berechnet im Wesentlichen die Beschleunigung, indem sie Anfangs- und Endgeschwindigkeit sowie Zeit eingibt und dann eine Formel zur Berechnung der Beschleunigung verwendet. Da die Werte in den Textfeldern Zeichenketten sind, kann ich sie nicht in Ganzzahlen konvertieren.

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

@IBAction func btn1(sender : AnyObject) {

    let answer1 = "Die Beschleunigung beträgt"
    var answer2 = txtBox1
    var answer3 = txtBox2
    var answer4 = txtBox3

22voto

OOMMEN Punkte 259

swift 4.0

let stringNumber = "123"
let number = Int(stringNumber) //here number is of type "Int?"

//using Forced Unwrapping

if number != nil {         
 //string is converted to Int
}

Sie könnten auch optionales Binding verwenden, anstelle von erzwungenem Binding.

zum Beispiel:

  if let number = Int(stringNumber) { 
   // number ist vom Typ Int 
  }

16voto

Naresh Punkte 14268

In Swift 4.2 und Xcode 10.1

let string = "789"
if let intValue = Int(string) {
    print(intValue)
}

let integerValue = 789
let stringValue = String(integerValue)

ODER

let stringValue = "\(integerValue)"
print(stringValue)

15voto

Pankaj Nigam Punkte 318

//Xcode 8.1 und Swift 3.0

Wir können es auch durch optionales Binding behandeln, einfach

let vorkommen = "10"

if let vork = Int(vorkommen) {
        print("Durch optionales Binding:", vork * 2) // 20

    }

7voto

torcelly Punkte 516

Swift 3

Der einfachste und sicherste Weg ist:

@IBOutlet var textFieldA  : UITextField
@IBOutlet var textFieldB  : UITextField
@IBOutlet var answerLabel : UILabel

@IBAction func calculate(sender : AnyObject) {

      if let intValueA = Int(textFieldA),
            let intValueB = Int(textFieldB) {
            let result = intValueA + intValueB
            answerLabel.text = "Die Beschleunigung beträgt \(result)"
      }
      else {
             answerLabel.text = "Der Wert \(intValueA) und/oder \(intValueB) ist keine gültige Ganzzahl"
      }        
}

Ungültige Werte vermeiden, indem die Tastatur auf Zahlenblock eingestellt wird:

 textFieldA.keyboardType = .numberPad
 textFieldB.keyboardType = .numberPad

7voto

garg Punkte 2455

In Swift 4:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X