Целые числа текстового поля Swift5 из пользовательского ввода - PullRequest
0 голосов
/ 30 апреля 2020

Использование Swift5. Пользовательский интерфейс (не раскадровка), будучи новичком в Xcode, после получения текстового поля STRING от пользователя, 1) как преобразовать строку в целое число, чтобы я мог выполнять математические вычисления из ответов пользователя на несколько текстовых полей? .. и 2) откуда берется код go?

Ответы [ 3 ]

1 голос
/ 01 мая 2020

1)

    @State private var textfieldInput = ""
    var Int1: Int {
    return Int(textfieldInput) ?? 0 // String to Int conversion is always return optional.
    }

    //some code
    TextField("Text", text: $textfieldInput)

2) Как w ie скажет, если мы не знаем ваш код? Но я старался изо всех сил, чтобы показать концепцию.

0 голосов
/ 01 мая 2020
Sorry, (I'm really new at this) for not including my code earlier...hope this 
helps....

import SwiftUI

struct ContentView: View {
    @State var xUSERNAME: String = ""
    @State var xUSERNAME2: String = ""
    @State var xMATH: Int = 2


var body: some View {
    VStack(alignment: .leading) {
        Text("Hello World!")
        TextField("Enter User Name...", text: $xUSERNAME)
            .foregroundColor(.black)
            .textFieldStyle(RoundedBorderTextFieldStyle())
        Text("YOUR USER NAME: \(xUSERNAME)")
            .fontWeight(.bold)

        TextField("Enter User Name...", text: $xUSERNAME2)
                      .foregroundColor(.black)
                      .textFieldStyle(RoundedBorderTextFieldStyle())
        Text("YOUR USER NAME: \(xUSERNAME2)")
        .fontWeight(.bold)
        Text("YOUR USER NAME: \(xUSERNAME)\(xUSERNAME2)")
        Text("\(xUSERNAME)")

     }.padding()

                }

       }
0 голосов
/ 01 мая 2020

В следующем приложении resultString - это вычисляемое свойство, которое преобразует строку в Int. Это выражение является необязательным, поскольку String может быть чем угодно, когда мы пытаемся.

import SwiftUI

struct ContentView: View {
    @State private var num: Int = 0
    @State private var text: String = "0"
    private var resultInt: Int {
        return self.num*self.num
    }
    private var resultString: String {
        if let num = Int(self.text) { // Here it convert the string to an integer
            return String(num*num)
        }
        return "0"
    }
    var body: some View {
        VStack {
            TextField("String Number",text: self.$text)
            .textFieldStyle(RoundedBorderTextFieldStyle())
            TextField("Int Number", value: self.$num, formatter: NumberFormatter())
            .textFieldStyle(RoundedBorderTextFieldStyle())
            Spacer()
            Text("Square is \(self.resultInt)").font(.title)
            Text("Square is \(self.resultString)").font(.title)
            Spacer()
        }.padding()
    }
}

@ rick-h прокомментируйте, если вам нужно разъяснение

...