Многострочный массив переменных Swift - PullRequest
0 голосов
/ 14 июня 2019

У меня есть два массива, я хочу собрать эти массивы в один массив. Итак, что я хочу сделать, это иметь

оценочные значения 1 + оценочные значения 2 + оценочные значения 3 = gradePickerValues ​​

Что мне с этим делать? Сейчас он не работает в коде.

 var picker = UIPickerView()

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

    @objc func GetDevice() {


        if !chipnumber.text!.isEmpty {
            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.gradePickerValues = [dic]
            })

        }

        if !chipnumber2.text!.isEmpty {
            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.gradePickerValues = [dic]

            })

        }

        if !chipnumber3.text!.isEmpty {
            let ref = Database.database().reference().child(chipnumber3.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.gradePickerValues = [dic]

            })

        }

    }

1 Ответ

0 голосов
/ 14 июня 2019

В настоящее время вы перезаписываете gradePickerValues в каждом ответе. Вы можете попробовать использовать

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

let g = DispatchGroup()

@objc func GetDevice() {



    if !chipnumber.text!.isEmpty {

        g.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.g.leave()
        })

    }

    if !chipnumber2.text!.isEmpty {

        g.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.g.leave()
        })

    }

    if !chipnumber3.text!.isEmpty {

        g.enter()

        let ref = Database.database().reference().child(chipnumber3.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.gradePickerValues3 = [dic]
            self.g.leave()

        })

    }

    g.notify(queue:.main) {

        self.gradePickerValues = gradePickerValues1 + gradePickerValues2 + gradePickerValues3

        print(self.gradePickerValues)
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...