找不到包含&#39;包含&#39;接受类型&#39;([Int],Expression <string>)&#39; </string>的参数列表

时间:2015-04-16 14:08:21

标签: sqlite swift sqlite.swift

我使用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>)'

我该如何使用?

1 个答案:

答案 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应该可以正常工作。