countElements 和 UITextField 的数学运算

Maths with countElements and UITextField

我正在为朋友制作一个笑话应用程序,并通过制作 LoveCalculator 来改进我的 swift 编码。计算器计算恋人的两个名字的长度,乘以长度,然后从 100 中减去该数字,得出您的爱情百分比。但是,每次我尝试该应用程序时,它每次都会显示数字 -40906。有任何想法吗?我尝试将 UITextField 更改为 String 转换方法。我是 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)"  
}

当您使用 outputLabel.text 访问标签的文本时,您对文本字段执行相同的操作 -> textfield.text

Docs

personOnepersonTwo 是 UITextFields,不是文本。

将您的代码更改为:

var one = toString(personOne.text)
var two = toString(personTwo.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)"  
}

您的代码试图做的是 printUITextField 实例转换为字符串,这将导致类似于:<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)"
}