Математика с 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)"  
}
Другие вопросы по тегам