如何正确检查数组是否包含if语句中的元素

时间:2015-12-21 19:26:30

标签: arrays swift

我有这行代码:

   if ((self.datasource?.contains((self.textField?.text)!)) != nil) {
            if let _ = self.placeHolderWhileSelecting {
               // some code
            }

是否有更清晰的方法来检查元素是否包含在数组中?我有包含函数返回的Bool,我不想检查这个Bool是否为零

编辑:解决方案是将数组更改为非可选类型。

2 个答案:

答案 0 :(得分:1)

您可以使用if let where构造。如果self.datasourceself.textFieldnil

,此代码可防止崩溃
if let
    list = self.datasource,
    elm = self.textField?.text,
    _ = self.placeHolderWhileSelecting
    where list.contains(elm) {
        // your code
}

答案 1 :(得分:0)

另一种可能的解决方案,使用可选链接到self.textField.text并假设数据源仍然是可选的。

if let unwrappedArray = self.datasource, let unwrappedString = self.textField?.text {
    if unwrappedArray.contains(unwrappedString) {
        // Some code
    }
}