【问题标题】:Maths with countElements and UITextField使用 countElements 和 UITextField 进行数学运算
【发布时间】:2015-03-23 10:20:10
【问题描述】:

我正在为朋友制作一个笑话应用程序,并通过制作一个 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)"  
}

【问题讨论】:

  • PS:当在操场上运行时,没有 toString 转换或从 texFields/ 输出到 Label 的输入,代码可以完美运行。
  • 打印变量一,二的值会很快揭示你的错误......
  • 除了UITextField 的问题,你还有一个算法问题。超过 10 个字母的名称将始终以负数结尾。
  • 好点 Sulthan,我不知道我是怎么错过的......

标签: ios string swift tostring countelements


【解决方案1】:

personOnepersonTwo 是 UITextFields,而不是文本。

将代码更改为:

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

【讨论】:

    【解决方案2】:

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

    Docs

    【讨论】:

      【解决方案3】:

      试试这个

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

      【讨论】:

        【解决方案4】:

        您的代码试图做的是将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)"
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-28
          • 1970-01-01
          • 2017-08-07
          • 2011-08-18
          • 2011-04-06
          • 1970-01-01
          • 2012-01-16
          相关资源
          最近更新 更多