我对斯威夫特不熟悉。我写了一个在数组中找到匹配项的方法。但我用的是一个简单的for循环。我在想我们有没有办法用地图来做这种手术。

var matchedCompanyIds : Set<String> = []
for company in editableStaticUserData.companies {
    if let companyIdentifier : String = company.companiesIdentifier {
        if let companyIds = self.editableFilter?.companyIds {
            if companyIds.contains(companyIdentifier) {
                matchedCompanyIds.insert(companyIdentifier)
            }
        }
    }
}

最佳答案

抱歉,我没有读你的代码。我想要这个

let identifiers = companies.flatMap({$0.companiesIdentifier})
let result = companyIds?.intersect(identifiers)

结果是可选的,但几乎是一样的

关于ios - 如何快速使用过滤器功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32910195/

10-10 20:45