我需要一些帮助,我做了一个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/