带有countElements和UITextField的数学

时间:2015-03-23 10:20:11

标签: ios string swift tostring countelements

我正在为朋友制作一个笑话应用程序,并通过制作LoveCalculator来改进我的快速编码。计算器找到恋人的两个名字的长度,乘以长度,然后将该数字从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)"  
}

4 个答案:

答案 0 :(得分:2)

personOnepersonTwo是UITextFields,而不是文本。

将您的代码更改为:

var one = toString(personOne.text)
var two = toString(personTwo.text)

答案 1 :(得分:0)

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

Docs

答案 2 :(得分:0)

试试这个


@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)"  
}

答案 3 :(得分:0)

您的代码尝试执行的操作是将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)"
}