使用过滤器搜索,无法正常工作 - Parse,Swift

时间:2015-12-13 04:42:22

标签: arrays swift search parse-platform filter

当我呼叫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")

任何有用的评论都会受到赞赏,除了别人的愚蠢之外。感谢。

1 个答案:

答案 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)
                }
            }
        })
相关问题