检查Parse.com列Array是否包含当前用户名

时间:2015-10-20 10:38:53

标签: xcode swift parse-platform

我正在尝试检查解析中的数组是否包含当前用户的用户名:

var thisUser = PFUser.currentUser()?.username

查询:

var query = PFQuery(className: "currentUploads")
            query.whereKey("reportedBy", containsString: self.thisUser)
            query.findObjectsInBackgroundWithBlock({ (object: [AnyObject]?, error: NSError?) -> Void in
                if (error == nil){
                    // Success fetching user in reportedBy field
                    println("User found")
                }
                else
                {
                    println(error)
                    println("User NOT found")
                }
            })

enter image description here

它给了我错误:

  

[错误]:$ regex仅适用于字符串字段(代码:102,版本:   1.8.0)可选(错误域=解析代码= 102“$ regex仅适用于字符串字段”UserInfo = 0x7fba6a5b7610 {code = 102,temporary = 0,   error = $ regex仅适用于字符串字段,   NSLocalizedDescription = $ regex仅适用于字符串字段})用户NOT   结果

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您必须使用equalTo代替containsString。正如错误所述,containsString仅适用于字符串,而不适用于数组:

query.whereKey("reportedBy", equalTo: self.thisUser)

该名称具有误导性,但equalTo检查所有数组元素是否等于您的字符串。

答案 1 :(得分:0)

鉴于你应该使用equalTo而不是containsStringIt,你得到一个空对象并不奇怪。如果您的用户名不在任何数组中,那应该是正确的。我认为你相信如果没有找到记录,你应该得到一个错误但事实并非如此。如果没有找到任何内容,你只需返回一个空对象。