我如何实现[example.text intValue]?

时间:2016-01-01 00:13:11

标签: ios xcode swift

我正在制作一款应用程序,告诉您动物根据体重需要多少药物等。对于LRS(一种药物),配方是

  

(30 *重量*因子+ 70)*因子+脱水+重量

所以对于代码,我键入了lrs = (30 * [weight.text intValue] + 70) * [factor.text intValue] + [weight.text intValue] * [deh.text intValue] * 10 + [losses.text intValue];,但编译器说有"使用未解析的标识符intValue"。

我在网上看到的每个地方都说[example.text intValue]从UITextField的输入中获取一个数字值。我的代码有问题吗?谢谢!

PS - 我只有十二岁,我在网上了解了所有关于代码的知识,并且我一直在努力解决我的问题近两个小时。如果您回答,您的答案是否可以彻底且易于理解?

此外,所有我的代码:

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var animalNum: UITextField!
@IBOutlet weak var logLabel: UILabel!
@IBOutlet weak var resetButton: UIButton!


@IBOutlet weak var weight: UITextField!
@IBOutlet weak var deh: UITextField!
@IBOutlet weak var losses: UITextField!
@IBOutlet var factor: [UITextField]!

@IBOutlet weak var lrs24: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    // Handle the text field’s user input through delegate callbacks.
    animalNum.delegate = self
}

// MARK: UITextFieldDelegate

func textFieldShouldReturn(textField: UITextField) -> Bool {
    // Hide the keyboard.
    textField.resignFirstResponder()
    return true
}

func textFieldDidEndEditing(textField: UITextField) {
    logLabel.text = textField.text
}

// MARK: Actions
@IBAction func setDefaultLabelText(sender: UIButton) {
    logLabel.text = "Default Text"
}


@IBAction func textFieldsDidEndEditing(sender: AnyObject) {

    lrs24.label = (30 * [weight.text ,intValue] + 70) * &factor+       &weight * &deh * 10 + &losses;



    //(30 * &weight + 70) * &factor + &weight * &deh * 10 + &losses
}



// MARK: properties

}

1 个答案:

答案 0 :(得分:2)

[weight.text intValue]是Objective-C代码。 Swift等价物是(weight.text as NSString).intValueas NSString是必要的,因为swift字符串不会被隐式转换为NSString。)

甚至更多Swifty,Int(weight.text),它为您提供了一个可选的< Int>当字符串不是一个格式正确的数字时,而不是返回0。