二元运算符'=='不能应用于'String!'类型的操作数和Swift 2中的'[String]'Xcode 7

时间:2016-06-01 22:31:36

标签: string swift

我开发了以下代码并且工作正常:

if metadataObj.type == AVMetadataObjectTypeQRCode {
    //the code...
}

现在,我希望metadataObj.type等于以下字符串数组:

let barCodeTypes = [AVMetadataObjectTypeQRCode,
                    AVMetadataObjectTypeAztecCode
]

if metadataObj.type == barcodeTypes {
    //The code...
}

使用新代码时出现以下错误:

  

二元运算符'=='不能应用于'String!'类型的操作数和'[String]'

有什么建议吗?提前致谢

2 个答案:

答案 0 :(得分:2)

您无法比较字符串和字符串数组,但可以使用contains

 if barcodeTypes.contains(metadataObj.type)

答案 1 :(得分:-1)

您似乎正在尝试检查barCodeTypes数组中的任何字符串是否与metadataObj.type匹配。你想要一个for循环。

for barCode in barCodeTypes {
    if metadataObj.type == barCode {
       //the code...
    }
}

这会迭代barCodeTypes中的每一项,并检查它们是否相等。