Sqlite.swift实时搜索

时间:2015-07-23 16:22:43

标签: ios swift sqlite.swift

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

假设我想通过公司搜索,我在名为companies的专栏中有以下信息。

  • FastCompany
  • 谷歌
  • 微软

我有一个在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”中),则查询不会显示任何内容。

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

1 个答案:

答案 0 :(得分:1)

我认为您的问题来自于每次搜索都在编写user对象。只要您向前移动就可以了,但是当您像往常一样倒退时,查询就会混乱。

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

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

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