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



我是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()
}

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

使用 IBOutletCollection 或等效的,如下所示:

@IBOutlet var textFieldsArray: [UITextField]?

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

如果您使用objective-C代码,请将所有插座连接到IBOutletCollection,并使用KVC收集运算符的@avg计算平均值。

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

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

最新更新