2015-11-08 3 views
0

Я пытаюсь выполнить запрос с несколькими условиями в синтаксическом анализе, например, я ввел только занятие и оставил все остальные поля пустыми и нажал кнопку поиска. Он будет запрашивать все данные о занятости, но после этого это другие данные, которые не относятся к фильтру.фильтрация запроса с помощью parse - swift2

Как ограничить результаты на основе поиска фильтров пользователей.

проблема заключается в том, что мой запрос ниже возвращает все данные из синтаксического анализа,

let occupationQuery = PFQuery(className: "JobPost") 
    occupationQuery.whereKey("occupation", containsString: occupationLabel.text) 

    let genderQuery = PFQuery(className: "JobPost") 
    genderQuery.whereKey("gender", containsString: genderLabel.text) 

    let workExperienceQuery = PFQuery(className: "JobPost") 
    workExperienceQuery.whereKey("workExperience", containsString: workExperienceLabel.text) 

    let employmentStatusQuery = PFQuery(className: "JobPost") 
    employmentStatusQuery.whereKey("employerStatus", containsString: employmentLabel.text) 

    let nationalityQuery = PFQuery(className: "JobPost") 
    nationalityQuery.whereKey("nationality", containsString: nationalityLabel.text) 

    let finalQuery = PFQuery.orQueryWithSubqueries([occupationQuery, genderQuery, workExperienceQuery, employmentStatusQuery, nationalityQuery]) 

    finalQuery.findObjectsInBackgroundWithBlock { (results: [AnyObject]?, error) -> Void in 
     if error != nil{ 
      let myAlert = UIAlertController(title: "Alert", message: error?.localizedDescription, preferredStyle: UIAlertControllerStyle.Alert) 
      let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil) 
      myAlert.addAction(okAction) 
      self.presentViewController(myAlert, animated: true, completion: nil) 

      return 
     } 

     if let objects = results as? [PFObject] { 
      self.searchResults.removeAll(keepCapacity: false) 
       print(objects) 
      print(objects) 

     } 
    } 

ответ

0

кажется, что я использовал неправильную функцию, измените containString на equalTo.

employmentStatusQuery.whereKey("employerStatus", equalTo: 
employmentLabel.text!)