Xcode Swift计算23个文本字段值的平均值

时间:2017-05-12 18:01:42

标签: ios swift xcode

我是iOS编程新手。我正在创建一个应用程序,它读取文本字段的值并计算平均值。我有23个文本字段。这就是我所拥有的。

import UIKit

class SavedBerekenenViewController: UIViewController {
    @IBOutlet weak var naam1: UITextField!
    @IBOutlet weak var cijfer1: UITextField!
    @IBOutlet weak var weging1: UITextField!
    @IBOutlet weak var naam2: UITextField!
    @IBOutlet weak var weging2: UITextField!
    @IBOutlet weak var cijfer2: UITextField!
    @IBOutlet weak var weging3: UITextField!
    @IBOutlet weak var cijfer3: UITextField!
    @IBOutlet weak var weging4: UITextField!
    @IBOutlet weak var cijfer4: UITextField!
    @IBOutlet weak var weging5: UITextField!
    @IBOutlet weak var cijfer5: UITextField!
    @IBOutlet weak var weging6: UITextField!
    @IBOutlet weak var cijfer6: UITextField!
    @IBOutlet weak var weging7: UITextField!
    @IBOutlet weak var cijfer7: UITextField!
    @IBOutlet weak var weging8: UITextField!
    @IBOutlet weak var cijfer8: UITextField!
    @IBOutlet weak var weging9: UITextField!
    @IBOutlet weak var cijfer9: UITextField!
    @IBOutlet weak var weging10: UITextField!
    @IBOutlet weak var cijfer10: UITextField!
    @IBOutlet weak var weging11: UITextField!
    @IBOutlet weak var cijfer11: UITextField!
    @IBOutlet weak var weging12: UITextField!
    @IBOutlet weak var cijfer12: UITextField!
    @IBOutlet weak var weging13: UITextField!
    @IBOutlet weak var cijfer13: UITextField!
    @IBOutlet weak var weging14: UITextField!
    @IBOutlet weak var cijfer14: UITextField!
    @IBOutlet weak var weging15: UITextField!
    @IBOutlet weak var cijfer15: UITextField!
    @IBOutlet weak var weging16: UITextField!
    @IBOutlet weak var cijfer16: UITextField!
    @IBOutlet weak var weging17: UITextField!
    @IBOutlet weak var cijfer17: UITextField!
    @IBOutlet weak var weging18: UITextField!
    @IBOutlet weak var cijfer18: UITextField!
    @IBOutlet weak var weging19: UITextField!
    @IBOutlet weak var cijfer19: UITextField!
    @IBOutlet weak var weging20: UITextField!
    @IBOutlet weak var cijfer20: UITextField!
    @IBOutlet weak var weging21: UITextField!
    @IBOutlet weak var cijfer21: UITextField!
    @IBOutlet weak var weging22: UITextField!
    @IBOutlet weak var cijfer22: UITextField!
    @IBOutlet weak var weging23: UITextField!
    @IBOutlet weak var cijfer23: UITextField!

    @IBOutlet weak var LBgemiddelde: UILabel!

    var text: String = ""
    var I: Int = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.title = text
    }

    func gemiddelde() {
        let aantalCijfers:Double = (Double(weging1.text!)! + Double(weging2.text!)! + Double(weging3.text!)! + Double(weging4.text!)! + Double(weging5.text!)! + Double(weging6.text!) + Double(weging7.text!)! + Double(weging8.text!)! + Double(weging9.text!)! + Double(weging10.text!)! + Double(weging11.text!)! + Double(weging12.text!)! + Double(weging13.text!)! + Double(weging14.text!)! + Double(weging15.text!)! + Double(weging16.text!)! + Double(weging17.text!)! + Double(weging18.text!)! + Double(weging19.text!)! + Double(weging20.text!)! + Double(weging21.text!)! + Double(weging22.text!)! + Double(weging23.text!)!)
        let som:Double = (Double(cijfer1.text!)! * Double(weging1.text!)! + Double(cijfer2.text!)! * Double(weging2.text!) + Double(cijfer3.text!)! * Double(weging3.text!)! + Double(cijfer4.text!)! * Double(weging4.text!)! + Double(cijfer5.text!)! * Double(weging5.text!)! + Double(cijfer6.text!)! * Double(weging6.text!)! + Double(cijfer7.text!)! * Double(weging7.text!)! + Double(cijfer8.text!)! * Double(weging8.text!)! + Double(cijfer9.text!)! * Double(weging9.text!)! + Double(cijfer10.text!)! * Double(weging10.text!)! + Double(cijfer11.text!)! * Double(weging11.text!)! + Double(cijfer12.text!)! * Double(weging12.text!)! + Double(cijfer13.text!)! * Double(weging13.text!)! + Double(cijfer14.text!)! * Double(weging14.text!)! + Double(cijfer15.text!)! * Double(weging15.text!)! + Double(cijfer16.text!)! * Double(weging16.text!)! + Double(cijfer17.text!)! * Double(weging17.text!)! + Double(cijfer18.text!)! * Double(weging18.text!)! + Double(cijfer19.text!)! * Double(weging19.text!)! + Double(cijfer20.text!)! * Double(weging20.text!)! + Double(cijfer21.text!)! * Double(weging21.text!)! + Double(cijfer22.text!)! * Double(weging22.text!)! + Double(cijfer23.text!)! * Double(weging23.text!)!)
        let gemiddeldedouble:Double = (som / aantalCijfers)
        LBgemiddelde.text = String(gemiddeldedouble)
    }

    @IBAction func bereken(_ sender: UIButton) {
        gemiddelde()
    }

我认为这不是正确的方法,所以请帮助。

2 个答案:

答案 0 :(得分:2)

使用IBOutletCollection或它的等价物如下:

  

@IBOutlet var textFieldsArray:[UITextField]?

将所有文本字段连接到上述属性。 然后你可以使用swift中的for-in循环迭代所有textFields,获取值,并计算平均值。

如果您使用Objective-C代码,请将所有商店连接到IBOutletCollection,然后使用来自KVC集合运营商的@avg计算平均值。

答案 1 :(得分:0)

var dbDate = myRawDbDate.Kind == DateTimeKind.Unknown ? DateTime.SpecifyKind(myRawDbDate, DateTimeKind.Utc): myRawDbDate; var localDdate = new DateTimeOffset(dbDate, new TimeSpan(0,6,0)).DateTime; 使用IBOuletCollection而不是IBOulet个人UITextField。只需迭代到集合中并获取每个文本字段的值,将其保存到变量中,然后获取这些值的平均值。

        var allValues = 0
        for tf in txtFields {
            allValues = allValues + Int(tf.text!)!

        }
        print(allValues)