Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Parse和Swift在一个键上设置两个查询约束_Ios_Database_Swift_Parse Platform_Ios8 - Fatal编程技术网

Ios 使用Parse和Swift在一个键上设置两个查询约束

Ios 使用Parse和Swift在一个键上设置两个查询约束,ios,database,swift,parse-platform,ios8,Ios,Database,Swift,Parse Platform,Ios8,伙计们,我正在尝试获取用户名未包含在数组中的所有pfuser(dontShowUsers)。我还想使用变量name限制查询,该变量获取用户名等于用户搜索的名称的所有用户。但是,当我这样做时: findUsers.whereKey("username",containsString:name) findUsers.whereKey("username",notContainedIn:dontShowUsers) 每个用户都会显示。它会生成这两个查询,并将它们添加到一起。我想将第一个whereKe

伙计们,我正在尝试获取用户名未包含在数组中的所有pfuser(
dontShowUsers
)。我还想使用变量
name
限制查询,该变量获取用户名等于用户搜索的名称的所有用户。但是,当我这样做时:

findUsers.whereKey("username",containsString:name)
findUsers.whereKey("username",notContainedIn:dontShowUsers)
每个用户都会显示。它会生成这两个查询,并将它们添加到一起。我想将第一个
whereKey
与第二个
whereKey
约束在一起。实现这一点的最佳方法是什么?

这是一种方法

println(geoPoint)
user["location"] = geoPoint
let rejectedUsers: [String] = user["rejected"].copy() as [String]
let acceptedUsers: [String] = user["accepted"].copy() as [String]
let ignoredUsers = rejectedUsers + acceptedUsers

var query = PFUser.query()
query.whereKey("location", nearGeoPoint: geoPoint)
query.whereKey("username", notEqualTo: user.username)
query.whereKey("gender", equalTo: user["interestedIn"])
query.whereKey("username", notContainedIn: ignoredUsers)
query.limit = 10
query.findObjectsInBackgroundWithBlock({
    (objects: [AnyObject]!, error2: NSError!) -> Void in
    if error2 != nil {
        println(error2)
    } else {
        if objects.isEmpty {
            println("empty query")
        } else {
            for object in objects {
                self.usernames.append(object.username)
                self.userImages.append(object["image"] as NSData)
注意,我必须从parse复制我的用户[“拒绝”]数组 然后我用+来创建“ignoredUsers”

然后我可以使用:


query.whereKey(“用户名”,不包含在:ignoredUsers中)

我想说,你可以不用使用两个约束来解决这个问题,就在执行查询之前,检查名称是否在数组中,如果不在数组中,就执行查询。

检查我已经检查过了,实际上,我不知道如何使用
containsAllObjects实现搜索功能
你能做一个吗查询,然后过滤结果以找到与另一个匹配的结果?或者可以在云代码中执行此操作。或者,如果不显示属性对于用户是一致的,则可以在用户对象中有一个单独的bool列,您可以对其进行查询。