2015-06-12 3 views
0

Итак, я следовал за this ссылкой для реализации панели поиска в моем представлении таблицы.Присвоение значения поисковой панели Делегат - Swift

Мне пришлось внести несколько изменений, потому что в моих ячейках содержались объекты с разными значениями и типами данных, поэтому мне пришлось соответствующим образом адаптировать функцию поиска.

Я уверен, что у меня большая часть работы, у меня всего 2 вопроса.

  • При создании переменной, представляющей UI Table View используется, уведомление (в ссылке), который он называет переменной tableView (в верхней части скрипта). Будет ли это мешать остальным переменным tableView, используемым во многих функциях класса? Разве это не действует как глобальная переменная, влияющая на других с тем же именем в своем классе?
  • Я принимаю ошибку Cannot assign a value of type '...ViewController' to a value of type 'UISearchBarDelegate' на линии searchBar.delegate = self Мне кажется, что это единственная ошибка, которая у меня есть, и все остальное в порядке. Итак, что здесь не так, и как я могу это исправить? Я сделал ошибку где-то или ошибся в ссылке?

ответ

2

Нет проблем с использованием tableView как локальной (функции), так и "глобальной" переменной. Если у вас есть локальная и глобальная переменные с тем же именем, код будет обращаться к локальной переменной, предпочитая глобальную. Если вы хотите получить доступ к глобальному, вам нужно будет закодировать его как self.tableView.

Что касается вашей ошибки, обратите внимание, что в определении класса данного пособия:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UISearchBarDelegate 

это указывает UISearchBarDelegate, чтобы указать, что класс принимает этот протокол. Ошибка, которую вы получаете, предполагает, что вы пропустили этот шаг.

+0

блестящий спасибо! –

Смежные вопросы