【发布时间】:2017-07-02 20:44:53
【问题描述】:
我正在更改我的 2 个数组...
var title = ["Title 1", "Title 2", "Title 3"]
var artist = ["Artist 1", "Artist 2", "Artist 3"]
...到一个结构
struct Song {
var title: String
var artist: String
}
var songs: [Song] = [
Song(title: "Title 1", artist "Artist 1"),
Song(title: "Title 2", artist "Artist 2"),
Song(title: "Title 3", artist "Artist 3"),
]
我设置了我的UITableView,使单元格的标题等于songs[indexPath.row].title,单元格的副标题等于songs[indexPath.row].artist。
但是,我希望能够使用UISearchBar 搜索UITableView。每当我只有变量而不是结构时,它都可以正常工作。但是,现在我发现一个错误
var filteredTitles:[String] = []
var searchActive : Bool = false
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filteredTitles = title.filter //the error ({ (text) -> Bool in
let tmp: NSString = text as NSString
let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
return range.location != NSNotFound
})
if(filteredTitles.count == 0){
searchActive = false;
} else {
searchActive = true;
}
self.myTableView.reloadData()
}
如您所见,在filteredTitles = title.filter 行上,它调用了我的旧变量title。我应该用什么替换这一行以便它搜索结构的标题?
感谢您的帮助!
【问题讨论】:
标签: ios swift uitableview struct uisearchbar