数组 Select 选择器上的第一个数据 Swift

Array Select First Data on Picker Swift

电阻阵列1阵列3阵列IM,本人在此收藏。我想绘制这个数组的第一个元素。但是当我这样做时,我在实践中遇到了错误。如何获取文本字段中选择器中的第一个数据?我想将文本字段打印到选择器中的第一个数据。该代码不适用于此状态。

我在这行代码中遇到错误:

 getDevice.text = gradePickerValues[0]
     override func viewDidLoad() {
            super.viewDidLoad()
GetDevice()
    getDevice.text = gradePickerValues[0]
    }

      var picker = UIPickerView()

        var gradePickerValues1 = [String]()
        var gradePickerValues2 = [String]()
        var gradePickerValues3 = [String]()
        var gradePickerValues = [String]()

        let multiplearray = DispatchGroup()


        @objc func GetDevice() {


            if !chipnumber.text!.isEmpty {
                 multiplearray.enter()

                let ref = Database.database().reference().child(chipnumber.text!).child("titles").child("0").child("DeviceName")

                ref.observeSingleEvent(of: .value, with: { (snapshot) in
                    //let value: NSDictionary = snapshot.value as! NSDictionary
                    let dic = snapshot.value as! String
                    self.gradePickerValues1 = [dic]
                    self.multiplearray.leave()
                })

            }

            if !chipnumber2.text!.isEmpty {
                multiplearray.enter()

                let ref = Database.database().reference().child(chipnumber2.text!).child("titles").child("0").child("DeviceName")

                ref.observeSingleEvent(of: .value, with: { (snapshot) in
                    //let value: NSDictionary = snapshot.value as! NSDictionary
                    let dic = snapshot.value as! String
                    self.gradePickerValues2 = [dic]
                    self.multiplearray.leave()
                })

            }

            if !chipnumber3.text!.isEmpty {
                multiplearray.enter()

                let ref = Database.database().reference().child(chipnumber3.text!).child("titles").child("0").child("DeviceName")

                ref.observeSingleEvent(of: .value, with: { (snapshot) in

                    let dic = snapshot.value as! String
                    self.gradePickerValues3 = [dic]
                    self.multiplearray.leave()
                })

            }

            multiplearray.notify(queue:.main) {

                self.gradePickerValues = self.gradePickerValues1 + self.gradePickerValues2 + self.gradePickerValues3

            }
        }

        func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int){
            getDevice.text = gradePickerValues[row]

            switch row {
            case 0:
                    fetchDevies()

            case 1:
                    fetchdevieschip2()

            case 2:
                    fetchdevieschip3()

            default: break

            }
            self.view.endEditing(true)
        }

GetDevice() 包含异步任务。 notify 闭包 填充数组后更新标签。

并请以小写字母开头命名 functions/methods。

override func viewDidLoad() {
   super.viewDidLoad()
   getDevice()
} 

...

@objc func getDevice() {

...

   multiplearray.notify(queue:.main) {
      self.gradePickerValues = self.gradePickerValues1 + self.gradePickerValues2 + self.gradePickerValues3
      getDevice.text = gradePickerValues[0]
   }