Sqlite.swift отсутствует метка, где

Я использую библиотеку sqlite.swift, найденную здесь

Ниже приведен код, который я использую для фильтрации результатов:

.filter(mdm[assetTag] != "ipad" && location == facility && [tagArray].contains(appversion))

Я получаю следующую ошибку для части .contains:

Отсутствует метка аргумента «где» в вызове.

Я следую файлу readme, и в разделе .contains фильтра не должно быть места.

Обновление:

Объявление массивов выглядит следующим образом:

var tagarray = [String]()

let appversion = Expression<String>("appversion")

person Martheli    schedule 24.08.2017    source источник
comment
Опубликуйте заявление tagArray и appversion. Я знаю, в чем проблема, но мне нужны значения, чтобы дать точный ответ   -  person nathan    schedule 24.08.2017
comment
Добавлено объявление к исходному вопросу.   -  person Martheli    schedule 24.08.2017
comment
tagArray.contains(appversion) вместо этого?   -  person Larme    schedule 24.08.2017
comment
@Larme да, похоже, это сработало.   -  person Martheli    schedule 24.08.2017


Ответы (1)


Xcode считает, что вы используете Swift contains(where:) вместо where(_:), определенного библиотекой.

введите здесь описание изображения

Ваша переменная appversion должна быть типа Expression<String>.

let appversion = Expression<String>("appversion")
let tags = ["1.0","2.0.0","3.0"]

someTable.filter(tags.contains(appversion))
person nathan    schedule 24.08.2017
comment
Не похоже. Я только что опубликовал все доступные функции contains. Если это типа Expression, то куда даже не относится - person nathan; 24.08.2017
comment
Если я изменю значения фильтра и жесткого кода, как вы сделали с 1, 2 и т. д., ошибка исчезнет, ​​но когда я использую tagArray, я получаю ошибку. - person Martheli; 24.08.2017
comment
Кажется, все, что мне нужно сделать, это удалить [] вокруг массива следующим образом: - person Martheli; 24.08.2017
comment
О, верно. Пропустил это. Вы использовали массив массивов. - person nathan; 24.08.2017