Я пытаюсь создать GenericListController для своего приложения.
У меня есть ProductListController, который расширяет этот общий контроллер, который расширяет UIViewController. Я подключил ProductListController к раскадровке и сделал 2 выхода, но я всегда получаю эту ошибку:
Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x7c158ca0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key searchBar.'
Я получаю эту ошибку для всех моих торговых точек, если я удалю общий T из GenericListController, он работает. Я думаю, что раскадровка не может загружать супер с помощью дженериков. Как я могу заставить его работать?
Мой код:
class GenericListController<T> : UIViewController {
var list : [T] = [T]()
var filteredlist : [T] = [T]()
func getData(tableView : UITableView) {
.....
}
func setData(list : [T], tableView : UITableView) {
.....
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
class ProductListController : GenericListController<ProductModel> {
@IBOutlet weak var searchBar: UISearchBar!
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
getData(tableView)
}
}
- EDIT -
Я обнаружил, что если я расширяю общий класс и пытаюсь добавить класс в раскадровку, то xcode не будет автозаполнять имя класса (возможно, потому, что он не может определить класс)