1

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

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

  • Facebook
  • 快公司
  • Facebook
  • 谷歌
  • 微软

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

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

4

1 回答 1

1

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

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

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

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

于 2015-07-23T16:32:41.603 回答