Я видел похожие вопросы, заданные здесь, но ни один из них не очень полезен для меня конкретно.Таблица View ReloadData function not triggering cellForRowAtIndexPath Swift
Я реализую панель поиска в моем представлении таблицы, и похоже, что все хорошо, и нет никаких ошибок. Я просмотрел код несколько раз и не могу найти никаких ошибок. Поэтому я начал отлаживать.
Вот моя функция поиска:
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
var filtered:[Room] = filterz(rooms, txt: searchText)
//println(filtered.count)
if(filtered.count == 0){
searchActive = false
} else {
searchActive = true
}
self.tView.reloadData()
}
Я могу видеть, что это прекрасно работает в качестве его распечатки правильного подсчета. Однако я не уверен в функции reloadData. я понял, что это вызовет функцию cellForRowAtIndexPath, которая здесь:
func tableView(tableView:UITableView,cellForRowAtIndexPathindexPath:NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("RoomCell", forIndexPath: indexPath) as! UITableViewCell
var room:Room = rooms[indexPath.row]
if(searchActive){
room = filtered[indexPath.row]
}
if let nameLabel = cell.viewWithTag(200) as? UILabel{
nameLabel.text = room.name
println(room.name)
}
if let sizeLabel = cell.viewWithTag(201) as? UILabel{
sizeLabel.text = room.size
println(room.size)
}
if let vacLabel = cell.viewWithTag(202) as? UILabel{
vacLabel.text = room.vacant
println(room.vacant)
}
if let taskIm = cell.viewWithTag(203) as? UIImageView{
taskIm.image = UIImage(named: room.imagename)
}
return cell
}
Как вы можете видеть, что я поставил в операторах печати отлаживать, и он не печатает ничего. Это потому, что функция не запускается или из-за проблемы с моим кодом?
Если да, можете ли его найти? Все, что я точно знаю, это то, что до функции reloadData()
все работает отлично.
Ваших, вашего 'повторного объявления уаг filtered' просто обновить существующий' filtered' – 0yeoj
Ха-ха гениально! Хорошо подмечено! –