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

Ios Xcode Swift计算23个文本字段值的平均值,ios,swift,xcode,Ios,Swift,Xcode,我不熟悉iOS编程。我正在制作一个应用程序,它读取文本字段的值并计算平均值。我有23个文本字段。这是我的 import UIKit class SavedBerekenenViewController: UIViewController { @IBOutlet weak var naam1: UITextField! @IBOutlet weak var cijfer1: UITextField! @IBOutlet weak var weging1: UITextFi

我不熟悉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()
    }

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

使用iBootletCollection或其等效工具,如下所示:

@IBOutlet var textFieldsArray:[UITextField]

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


如果使用objective-C代码,请将所有插座连接到
IBOuletCollection
,并使用KVC采集操作员提供的
@avg
计算平均值。

对于
UITextField
使用
IBOuletCollection
而不是单个
IBOulet
。只需迭代到集合中,获取每个textfield的值并将其保存到变量中,然后获取这些值的平均值

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

        }
        print(allValues)

这些文本字段在同一视图中吗?是的,它们在同一视图中。但是没有更快的方法吗?还有一个是真正有效的hahaNo,它还有几个文本字段和两个按钮,这是46个文本字段,而不是23个文本字段。我想它们是成对排列的。但是你确定23是正确的号码吗?为什么不是22双呢?为什么不是24岁?看起来你真的应该使用
UITableView
UICollectionView
,每个单元格一对。是的,包括23对文本字段。这些文本字段是学生可以获得的分数。学生可以得到23分。这就是原因。如何获取变量中每个文本字段的值。你能给我举个例子吗?