Как проверить, вернул ли UISearchBar результаты, используя query.whereKey в Swift

У меня есть PFQueryTableViewController, и я добавил к нему UISearchBar. В моей функции QueryForTable я запускаю этот код, чтобы проверить, соответствует ли текст, введенный в searchBar, какому-либо значению в моем столбце Parse, и если это так, он показывает только те фильмы в таблице:

override func queryForTable() -> PFQuery {
let query = PFQuery(className: "Reviews")
query.orderByDescending("createdAt")

if filmSearchBar.text != "" {

    query.whereKey("FilmName", containsString: filmSearchBar.text!)

}

    return query

}

На данный момент все работает без проблем.

Что я хотел бы сделать, так это, если результаты не найдены, отобразить предупреждение для пользователя, чтобы сообщить им, что ничего не найдено. В настоящее время, если пользователь ищет что-то случайное, чего нет в моей базе данных Parse, он просто показывает пустую таблицу (что технически правильно), но я хотел бы сначала знать, как я могу выполнить проверку, поэтому, если запись поиска ничего не соответствует, покажите ЭТО оповещение, иначе, если это так, то он просто показывает фильмы, как сейчас.

Любая помощь приветствуется, спасибо


person Nick89    schedule 10.02.2016    source источник


Ответы (1)


вы не можете просто подсчитать объекты с помощью findObjects или findObjectsInBackgroundWithBlock

if filmSearchBar.text != "" {
    query.whereKey("FilmName", containsString: filmSearchBar.text!)
}
query.findObjectsInBackgroundWithBlock{ (array:[PFObject]?, error:NSError?) in 
   if array?.count == 0 {
    showAlert()
  }
}
person David Yang Liu    schedule 10.02.2016
comment
Я действительно задавался вопросом, как бы я это сделал. Я запустил этот код, но получаю следующее: Value of tuple type '([PFObject]?, NSError?)' (aka '(Optional<Array<PFObject>>, Optional<NSError>)') has no member 'count' - person Nick89; 11.02.2016
comment
findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) первый объект - это массив, верно? ты не можешь сосчитать это? $0 это массив между прочим - person David Yang Liu; 11.02.2016
comment
Привет, я добавил код, но когда я собираю и запускаю, как только приложение запускается, оно вылетает. - person Nick89; 12.02.2016