我正在尝试检查解析中的数组是否包含当前用户的用户名:
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")
}
})
它给了我错误:
[错误]:$ regex仅适用于字符串字段(代码:102,版本: 1.8.0)可选(错误域=解析代码= 102“$ regex仅适用于字符串字段”UserInfo = 0x7fba6a5b7610 {code = 102,temporary = 0, error = $ regex仅适用于字符串字段, NSLocalizedDescription = $ regex仅适用于字符串字段})用户NOT 结果
有什么建议吗?
答案 0 :(得分:1)
您必须使用equalTo
代替containsString
。正如错误所述,containsString
仅适用于字符串,而不适用于数组:
query.whereKey("reportedBy", equalTo: self.thisUser)
该名称具有误导性,但equalTo
检查所有数组元素是否等于您的字符串。
答案 1 :(得分:0)
鉴于你应该使用equalTo
而不是containsStringIt
,你得到一个空对象并不奇怪。如果您的用户名不在任何数组中,那应该是正确的。我认为你相信如果没有找到记录,你应该得到一个错误但事实并非如此。如果没有找到任何内容,你只需返回一个空对象。