Sqlite.swift 实时搜索
Sqlite.swift live search
我想在数据库上进行实时搜索。
假设我想按公司搜索,并且我在名为公司的列中有以下信息。
- 脸书
- 快速公司
- 脸书
- Google
- 微软
我有一个文本字段,它调用了一个关于 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
对象来显示结果。这样,无论您搜索什么,它都会匹配所有内容。
我想在数据库上进行实时搜索。
假设我想按公司搜索,并且我在名为公司的列中有以下信息。
- 脸书
- 快速公司
- 脸书
- 微软
我有一个文本字段,它调用了一个关于 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
对象来显示结果。这样,无论您搜索什么,它都会匹配所有内容。