當我打電話refreshResults("test")
所有的搜索結果仍然顯示,而不是隻包含「測試」在解析BUSINESS_NAME列的人。我使用過濾器時打印的數組包含數據,但數據不正確。具有過濾搜索,無法正常工作 - 解析,斯威夫特
這樣做的目標是一個簡單的搜索 - 這是返回包含過濾器的所有結果。例如:搜索「face」會返回face,facebook,faces,faces等,因爲這些結果都包含過濾器「face」。我將過濾器與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'的數據,這並不都在filtred'business_name',對不對? – adolfosrs
我需要搜索結果才能顯示任何business_name,只要它在搜索過濾器中。例如:搜索fo返回foo,foos,food,fodey,因爲它們都包含fo。 is_person部分將永遠是虛假的,因爲我在我的數據庫中搜索業務而不是個人 - 這就是我將它們分開的方式。 - 所有這些都與簡單的Google搜索非常相似,所有包含搜索條件的結果都會彈出。 – user3892791