具有核心数据的 TableView 中的搜索栏(使用 Swift)
Search Bar in a TableView with Core Data (using Swift)
我正在用 Core Data 制作 TableViewController。事实上,用户可以向 Table 视图添加新项目,这些项目保存在 Core Data 中。一切正常,但是当我添加 搜索栏 时,我被阻止了。
我添加了一个搜索栏,但是当我 运行 模拟器中的应用程序时,下面的这个功能会产生错误。
func updateSearchResultsForSearchController(searchController: UISearchController,)
{
filteredTableData.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text)
let array = (series as NSArray).filteredArrayUsingPredicate(searchPredicate)
filteredTableData = array as! [String]
self.tableView.reloadData()
}
我得到的错误是“以 NSException 类型的未捕获异常终止”
PS :我使用 Xcode 6.3.2,所有代码都在 Swift.
尝试以下操作:
func updateSearchResultsForSearchController(searchController: UISearchController) {
var request = NSFetchRequest(entityName: "Serie")
filteredTableData.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF.infos CONTAINS[c] %@", searchController.searchBar.text)
let array = (series as NSArray).filteredArrayUsingPredicate(searchPredicate)
for item in array
{
let infoString = item.infos
filteredTableData.append(infoString)
}
self.tableView.reloadData()
}
我正在用 Core Data 制作 TableViewController。事实上,用户可以向 Table 视图添加新项目,这些项目保存在 Core Data 中。一切正常,但是当我添加 搜索栏 时,我被阻止了。
我添加了一个搜索栏,但是当我 运行 模拟器中的应用程序时,下面的这个功能会产生错误。
func updateSearchResultsForSearchController(searchController: UISearchController,)
{
filteredTableData.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchController.searchBar.text)
let array = (series as NSArray).filteredArrayUsingPredicate(searchPredicate)
filteredTableData = array as! [String]
self.tableView.reloadData()
}
我得到的错误是“以 NSException 类型的未捕获异常终止”
PS :我使用 Xcode 6.3.2,所有代码都在 Swift.
尝试以下操作:
func updateSearchResultsForSearchController(searchController: UISearchController) {
var request = NSFetchRequest(entityName: "Serie")
filteredTableData.removeAll(keepCapacity: false)
let searchPredicate = NSPredicate(format: "SELF.infos CONTAINS[c] %@", searchController.searchBar.text)
let array = (series as NSArray).filteredArrayUsingPredicate(searchPredicate)
for item in array
{
let infoString = item.infos
filteredTableData.append(infoString)
}
self.tableView.reloadData()
}