我需要一些帮助,我做了一个pickerview,我想从Parse中检索它的数据。

我需要为数组分配值并在Picker View上显示它。

帮帮我
谢谢。

override func viewDidLoad() {
super.viewDidLoad()


        let pickerView = UIPickerView()
        pickerView.delegate = self
        doctor.inputView = pickerView

        let query = PFQuery(className: "doctors")
        //wherekey can be omited
        query.whereKey("doctorId", equalTo:"1")

        query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in

            if let objects = objects {

                for object in objects {

                    self.doctorNames.append(object["doctorNames"] as! String)

                    pickerView.reloadAllComponents()

                }

            }


        })
}


这是我的pickerView函数:

  func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
        return 1
    }

    func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        return doctorNames.count
    }

    func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        return doctorNames[row]
    }

    func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        doctor.text = doctorNames[row]  //bad inscturctions error on this line
    }

最佳答案

注意:我无法在注释中发布格式正确的代码,因此现在将其放在此处。如果我能够解决问题,则将其保留在此处进行编辑,否则,我将很快将其删除。

查询可能未返回任何内容,或者doctorNames不是返回对象上的有效属性。试试这个代码,让我们知道结果

if let objects = objects {
    print("objects returned: \(objects)")
    for object in objects {
        print("adding object to pickerView: \(object)")
        self.doctorNames.append(object["doctorNames"] as! String)
    }
    // also I'd put this outside of the loop
    pickerView.reloadAllComponents()
} else {
    print("something went wrong here. Objects is: \(objects), error is: \(error)")
}


编辑:

在操作发布日志结果之后,错误出在过滤器中。添加query.whereKey("doctorId", equalTo:"1")不会返回任何结果。省略此行将返回所有结果。

关于ios - 使用Swift 2.0从Parse检索数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33053998/

10-14 23:17