【问题标题】:Sqlite.swift live searchSqlite.swift 实时搜索
【发布时间】:2015-07-23 16:22:42
【问题描述】:

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

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

  • 脸书
  • 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”中)时,查询不会显示任何内容。

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

【问题讨论】:

    标签: ios swift sqlite.swift


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太棒了!非常感谢。
    猜你喜欢
    • 2015-03-20
    • 2016-11-22
    • 2010-11-22
    • 1970-01-01
    • 2013-04-15
    • 2021-05-26
    • 2020-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多