ios - 在 if 语句中使用多个 contains 函数 (Swift)

标签 ios arrays swift parse-platform

有没有办法在 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/

相关文章:

objective-c - 可以手动旋转 UIPopoverController View 吗?

c - 将数组中的数字转换为整数。 (和更多)

php - 如何从Laravel数据库查询数组中获取最后一项

python - 通过 Python 列表收缩类似元素

Swift - 帮助创建 JSON 数据的结构

ios - 我们如何才能确定文件*不*存在于 iOS 中?

ios - 如何修复尝试递归调用 -save coredata 错误?

swift - Parse - 使用云代码发送推送通知 (Swift)

ios - iOS 上的推文/分享样式文本框

xcode - 将我的 Swift 代码转换为 Swift 2.0 问题