有没有办法在 if 语句中使用多个“contains(array, value)”函数?我有一个将结果存储在数组中的查询。如果结果为零,我将执行一组操作。但是,如果数组不为零,我想检查其中是否出现某些对象:
var user: PFUser?
override func viewDidLoad() {
super.viewDidLoad()
//get the two players
if let user = user{
var userQuery = PFQuery(className: "Game")
userQuery.whereKey("user1", equalTo: user)
userQuery.whereKey("isActive", equalTo: true)
var userQuery2 = PFQuery(className: "Game")
userQuery2.whereKey("user2", equalTo: user)
userQuery2.whereKey("isActive", equalTo: true)
var currentUserQuery = PFQuery(className: "Game")
currentUserQuery.whereKey("user1", equalTo: PFUser.currentUser())
currentUserQuery.whereKey("isActive", equalTo: true)
var currentUserQuery2 = PFQuery(className: "Game")
currentUserQuery2.whereKey("user2", equalTo: PFUser.currentUser())
currentUserQuery2.whereKey("isActive", equalTo: true)
var query = PFQuery.orQueryWithSubqueries([userQuery, userQuery2, currentUserQuery, currentUserQuery2])
query.findObjectsInBackgroundWithBlock{
(results: [AnyObject]!, error: NSError!) -> Void in
if error == nil{
//if there are no active games, start new game
if results == nil{
//start game code
} else if contains(results, user) as [AnyObject]! && contains(results, PFUser.currentUser()) as [AnyObject]! {
println(results)
}
}
}
}
}
使用 && 运算符在以下行返回错误:无法使用类型为“([AnyObject]!,[AnyObject]!)”的参数调用“&&”
。关于如何测试以查看是否在数组中找到用户和 PFUser.current_user() 对象的任何想法?
谢谢!
最佳答案
问题是您试图将 contains func 调用的结果转换为 Bool in 到 AnyObjects 的数组。
您需要做的只是比较 contains(results, user) 和 contains(results, PFUser.currentUser()) 函数调用的结果。但它不会编译。
为了让您的编译器满意,您需要将results 数组转换为[PFUser] 数组
查看代码:
if let users = results as? [PFUser] {
if contains(users, user) && contains(users, PFUser.currentUser()) {
println(users)
}
}
关于ios - 在 if 语句中使用多个 contains 函数 (Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29182962/