我使用SQLite.swift
我尝试了表达式:
userTable.filter(contains([1, 2, 3, 4, 5], entryId))
来自示例。但是我收到了以下错误:
Cannot find an overload for 'contains' that accepts an argument list of type '([Int], Expression<String>)'
我该如何使用?
答案 0 :(得分:4)
SQLite.swift与Swift本身一样,是类型安全的,因此您过滤的列表达式必须与您正在检查的数组的类型相同。
似乎entryId
的类型为Expression<String>
,这类似于编写以下香草Swift:
contains([1, 2, 3, 4, 5], "1")
这实际上会失败,并显示非常相似的错误消息。
找不到接受类型为'([Int],String)'的参数列表的'contains'的重载
如果您希望entryId
成为Int
,则应将其定义为:
let entryId = Expression<Int>("entryId")
有了这个改变,contains
应该可以正常工作。