Sqlite.swift 实时搜索

Sqlite.swift live search

我想在数据库上进行实时搜索。

假设我想按公司搜索,并且我在名为公司的列中有以下信息。

我有一个文本字段,它调用了一个关于 editchanged 的​​函数。

   @IBAction func searching(sender: AnyObject) {
        tempstring = "%"+searchBar.text+"%"
        println(tempstring)

         user = user.select(name)
            .filter(like(tempstring, name))
            .limit(30, offset: 0)
        collectionView?.reloadData()
}

如果我开始输入“fa”,它会起作用 它将显示 (Facebook、Facebook 和 FastCompany)

如果我继续输入“fac”,它将显示 (Facebook, Facebook)

但是,当我从搜索框中删除最后一个字符“c”(再次将其留在 "fa" 中)时,查询不显示任何内容。

关于如何解决这个问题的任何想法。

我认为您的问题是由于每次搜索都覆盖了 user 对象。只要你只向前移动就没问题,但是当你像以前那样向后移动时,查询就会出错。

相反,尝试将 currentQuery 属性 添加到包含集合视图的视图控制器,并将其设置为您的 user.select 语句。

currentQuery = user.select(name)
        .filter(like(tempstring, name))
        .limit(30, offset: 0)

然后使用 currentQuery 对象来显示结果。这样,无论您搜索什么,它都会匹配所有内容。