我使用NSMutableDictionary来存储数据到键值对,并将这些字典追加到NSMutableArray.我想将我的过滤后的NSMUtablearray分配到另一个空的NSMUtablearray,但不能得到结果和应用程序崩溃dunring搜索一些文本...。
这是我的代码。
extension ViewController: UISearchBarDelegate, UISearchDisplayDelegate
{
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String)
{
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchText)
let result = ArrData.filtered(using: searchPredicate)
searchCoin.add(result)
searchActive = true
self.tableView.reloadData()
}
}
崩溃是:
只要把代码从
let dict = self.filteredArray.object(at: IndexPath.row) as! NSMutableDictionary
到
let dictOptional = self.filteredArray.object(at: IndexPath.row) as? NSMutableDictionary
guard let dict = dictOptional else {
print("Error at: \(IndexPath.row) - can't convert to dictionary")
}
如果你想知道更多--写ArrData的类型,filteredArray--你如何创建和使用它。