我正在为朋友制作一个笑话应用程序,并通过制作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)"
}
答案 0 :(得分:2)
personOne
和personTwo
是UITextFields,而不是文本。
将您的代码更改为:
var one = toString(personOne.text)
var two = toString(personTwo.text)
答案 1 :(得分:0)
当您使用outputLabel.text
访问标签文本时,您对文本字段执行相同操作 - > textfield.text
。
答案 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)"
}