2015-10-10 2 views
0

Мне нужна небольшая помощь, я сделал pickerview, и я хочу получить его данные из Parse.Извлечение данных из Parse с помощью Swift 2.0

Мне нужно присвоить значения массиву и показать его в режиме 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 
    } 
+0

Я не знаком с врачом, поэтому не уверен в этой части. Нужно ли пытаться распечатать объекты, возвращенные из разбора? какова фактическая проблема, которую вы имеете? не возвращаемые значения? или они возвращаются, но не отображаются в режиме выбора? – Scriptable

+0

врачи - это имя таблицы разбора, врач - это имя текстового поля, которое принимает значение viewPicker. Моя основная проблема - это не возвращаемые значения. Мне нужно принимать эти ценности. –

+0

Что показывает ваш журнал? –

ответ

1

Примечание: Я не могу отправить хорошо отформатированный код в комментариях, так что я положу это здесь сейчас. Если мне удастся решить проблему, я оставлю ее здесь с изменениями, если не удалю ее в ближайшее время.

Возможно, что запрос ничего не возвращает, или имя_данных не является допустимым свойством для возвращаемого объекта. попробуйте этот код и дайте нам знать результат

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)") 
} 

EDIT:

После результатов журнала цит проводки, ошибка в фильтре. добавив query.whereKey("doctorId", equalTo:"1") не вернул никаких результатов. Однако опускание этой строки вернет все результаты.

+0

После того, как я удалил WhereKey его работу! большое спасибо. –

+0

Ваш прием :) – Scriptable

+0

Как сортировать эти значения в алфавитном порядке перед печатью на экран? Там в любом случае? –

Смежные вопросы