数组 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]
}
电阻阵列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]
}