使用.contains()将字符串与数组进行比较Swift

时间:2017-04-27 20:56:47

标签: arrays swift

快速适度经验,但现在潜入阵列。

我在tableview cellForRow中调用了一个数组 该数组调用几个“默认”项。 “的ItemData” 用户选择条目,并将其保存到名为“diveItemArray”的数组中。

当用户返回到同一个tableview时,我试图让checkmark加载与diveItemArray数组匹配。

我正在尝试使用.contains(separator :)查找匹配项,但无效。

以下运行,但不显示复选标记。

var diveItemArray: Array<DiveItemForDiveModel> = Array<DiveItemForDiveModel>()

private var itemData: Array<String> = Array<String>()

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
{
    let cell: UITableViewCell! = tableView.dequeueReusableCell(withIdentifier: "DiveItemCell")

    cell.textLabel?.text = itemData[indexPath.row]

    let names = diveItemArray.map { $0.name }

    let test2 = names.joined(separator: " ")

    if itemData[indexPath.row].contains(test2) {
         cell.accessoryType = UITableViewCellAccessoryType.checkmark

    }

    return cell
}

如果我打印itemData,我会得到:

["", "Fun Dive", "Qualification Dive", "Refresher Dive", "Educational Dive", "Night Dive", "Deep Dive", "Wreck Dive", "Cave Dive", "Ice Dive", "Freshwater Dive", "Test Dive"]

如果我打印diveItemArray,我会得到:

["Deep Dive", "Wreck Dive", "Freshwater Dive", "Refresher Dive"]

如果我打印test2,如果得到:

Deep Dive Wreck Dive Freshwater Dive Refresher Dive

如何获得匹配以显示复选标记?

0 个答案:

没有答案