Swift How-First/Where语句检查可选对象数组-展开和匹配

Swift How-First/Where语句检查可选对象数组-展开和匹配,swift,Swift,我有一个对象数组,它们都属于类PFObject。 我有一个子类PFObject称为GameCategory,其中数组中的一些PFObjects是GameCategory 我想知道如何编写first/where语句来检查每个对象是否属于GameCategory类,然后检查匹配的ID 以下是我的非工作尝试: for id in Ids { if let object = self.matchObjects.first(where: { if let gameCategory

我有一个对象数组,它们都属于类
PFObject
。 我有一个子类
PFObject
称为
GameCategory
,其中数组中的一些
PFObject
s是
GameCategory

我想知道如何编写first/where语句来检查每个对象是否属于GameCategory类,然后检查匹配的ID

以下是我的非工作尝试:

for id in Ids {
    if let object = self.matchObjects.first(where: {
        if let gameCategory = $0 as? GameCategory {
            gameCategory.id == id
        }
    }) {
        //object successfully cast as GameCategory, and the GameCategory id was a match            
    }
}

此代码返回错误“Missing return in a closure expected to return'Bool.”

您的代码首先在该
中丢失了返回值(其中:
closure and casting as
GameCography
(您的cast仅存在于该闭包的范围内)。我写了一点不同,但它将实现相同的效果:

id中id的
{
如果让object=self.matchObjects.first(其中:{($0作为?游戏类别)?.id==id})作为?游戏类别{
//对象强制转换为GameCategory,id匹配
}
}

whereclosure必须返回一个
Bool
值,错误清楚地说明了什么。你将要完成什么?目前看来,第一个找到的
GameCategory
实例的
id
在循环的每次迭代中都会被覆盖。谢谢!我知道这一定是语法问题。