Математика с countElements и UITextField
Я делаю приложение-шутку для друзей и улучшаю свое быстрое кодирование, создавая LoveCalculator. Калькулятор находит длину двух имен влюбленных, умноженную на длину, а затем убирает это число из 100, получая процент вашей любви. Тем не менее, каждый раз, когда я пробую приложение, оно отображает число -40906 каждый раз. Есть идеи? Я попытался изменить метод преобразования UITextField в строку. Я довольно новичок в Swift, любая помощь будет признательна!
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var outputLabel: UILabel!
@IBOutlet weak var personOne: UITextField!
@IBOutlet weak var personTwo: UITextField!
@IBAction func calculateButton(sender: AnyObject) {
var one = toString(personOne)
var two = toString(personTwo)
var oneLength = countElements(one)
var twoLength = countElements(two)
var firstCalc = oneLength * twoLength
var finalCalc = 100 - firstCalc
outputLabel.text = "%\(finalCalc)"
}
4 ответа
personOne
а также personTwo
UITextFields, а не тексты.
Измените свой код на:
var one = toString(personOne.text)
var two = toString(personTwo.text)
То, что ваш код пытается сделать, это print
UITextField
экземпляр в строку, которая приведет к чему-то вроде: <UITextField: 0x7f936981ca50; frame = (225 201; 97 30); text = ''; clipsToBounds = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x7f93698228c0>>
,
В основном ваш код должен выглядеть так, чтобы подсчитать количество символов в текстовом поле:
@IBAction func calculateButton(sender: AnyObject) {
var oneLength = countElements(personOne.text)
var twoLength = countElements(personOne.text)
var firstCalc = oneLength * twoLength
var finalCalc = 100 - firstCalc
outputLabel.text = "%\(finalCalc)"
}
Как вы используете outputLabel.text
чтобы получить доступ к тексту метки, вы делаете то же самое с текстовым полем -> textfield.text
,
Попробуй это
@IBAction func calculateButton(sender: AnyObject) {
var oneLength = countElements(personOne.text)
var twoLength = countElements(personTwo.text)
var firstCalc = oneLength * twoLength
var finalCalc = 100 - firstCalc
outputLabel.text = "%\(finalCalc)"
}