Использование .contains в массиве настраиваемого типа в быстром - PullRequest
1 голос
/ 04 августа 2020

Я пытаюсь выяснить, содержит ли массив пользовательского типа этот пользовательский тип в 2D-массиве, но получаю следующую ошибку: Cannot convert value of type 'Modifier' to expected argument type '(Modifier) throws -> Bool'

Не уверен, что не так в этом коде:

for x in 0..<tableDataSource.count {
    for i in 0..<tableDataSource[x].count {
        if(existingModifiers.contains(where: tableDataSource[x][i].mod)){
            tableDataSource[x][i].selected = true
        }
    }
}

existingModifiers - это массив типа Modifier, а tableDataSource - это 2D-массив типа tableElement, где tableElement содержит атрибут Modifier

1 Ответ

2 голосов
/ 04 августа 2020

Заменить:

if(existingModifiers.contains(where: tableDataSource[x][i].mod))

на:

if(existingModifiers.contains(where: { $0 == tableDataSource[x][i].mod }))

Примечание

В Swift для большей ясности вы можете опускать круглые скобки в операторах if:

if existingModifiers.contains(where: { $0 == tableDataSource[x][i].mod })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...