Когда я вызываю refreshResults("test")
, все результаты поиска по-прежнему отображаются, а не те, которые ТОЛЬКО содержат «тест» в столбце business_name в Parse. Массивы, которые я печатаю при использовании фильтра, содержат данные, хотя и неправильные данные.Поиск с фильтром не работает правильно - Parse, Swift
Целью этого является простой поиск - он должен возвращать все результаты, содержащие фильтр. Пример: поиск «лица» будет возвращать лицо, facebook, лицо, лица и т. Д., Потому что все эти результаты содержат фильтр «лицо» в них. Я сравниваю фильтр с полем business_name, чтобы проверить, соответствуют ли какие-либо фильтры соответствию.
Значение is_person всегда неверно, потому что я ищу предприятия, а не лица.
Вот код:
func refreshResults(strFilter: String) {
let progressIndicator = MBProgressHUD.showHUDAddedTo(self.view, animated: true)
progressIndicator.labelText = "Loading..."
resultsCompEmailArray.removeAll(keepCapacity: false)
resultsCompNameArray.removeAll(keepCapacity: false)
resultsCompProfilePicArray.removeAll(keepCapacity: false)
if (!strFilter.isEmpty) {
print("searching with filter: ", strFilter)
let q1 = PFQuery(className: "_User")
q1.whereKey("is_person", equalTo: false)
let q2 = PFQuery(className: "_User")
q2.whereKey("business_name", containsString: strFilter)
let otherQuery = PFQuery.orQueryWithSubqueries([q2, q1])
otherQuery.findObjectsInBackgroundWithBlock({ (objects: [PFObject]?, error:NSError?) -> Void in
MBProgressHUD.hideAllHUDsForView(self.view, animated: true)
if (error == nil) {
for obj in objects! {
self.resultsCompNameArray.append(obj.objectForKey("business_name") as! String)
self.resultsCompEmailArray.append(obj.objectForKey("username") as! String)
if let profilePic = obj.objectForKey("profile_picture") as? PFFile {
self.resultsCompProfilePicArray.append(profilePic)
}
self.resultsTable.reloadData()
print(self.resultsCompNameArray)
}
}
})
}
}
Любые полезные комментарии оценили, кроме глупости для кого-то другого. Благодарю.
Таким образом, вы не хотите, данные с 'is_person = false' то не имеют нефильтрованное' business_name', верно? – adolfosrs
Мне нужны результаты поиска, чтобы отобразить любое имя business_name, пока оно находится в поисковом фильтре. Пример: поиск fo возвращает foo, foos, food, fodey, потому что все они содержат fo в них. Часть is_person всегда будет ложной, потому что я ищу предприятия в своей базе данных, а не лица - вот как я их разделяю. - все это очень похоже на простой поиск Google, все результаты, содержащие условия поиска, всплывают. – user3892791