当我呼叫Exception in thread "main" java.lang.NumberFormatException: For input string: "1234567898765"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:583)
at java.lang.Integer.parseInt(Integer.java:615)
at ISBNChecker.main(ISBNChecker.java:8)
时,仍会显示所有搜索结果,而不是仅在Parse的business_name列中包含“test”的搜索结果。我使用过滤器时打印的数组包含数据,但数据错误。
这个目标是一个简单的搜索 - 它返回包含过滤器的所有结果。示例:搜索“face”将返回face,facebook,faces,faces等,因为这些结果都包含过滤器“face”。我正在将过滤器与business_name字段进行比较,以查看是否有任何过滤器返回匹配项。
is_person值始终为false,因为我正在搜索商家而不是人。
以下是代码:
refreshResults("test")
任何有用的评论都会受到赞赏,除了别人的愚蠢之外。感谢。
答案 0 :(得分:1)
问题是您正在对查询执行OR操作。因此,您正在检索具有is_person == false或包含已过滤字符串的数据。因此,您的结果可能包含不适合过滤器的对象,但is_person标志为false。
要解决此问题,您可以执行以下操作:
let query = PFQuery(className: "_User")
query.whereKey("is_person", equalTo: false)
query.whereKey("business_name", containsString: strFilter)
query.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)
}
}
})