1
Я получаю сообщение об ошибке из этого кода. Тип универсального параметра «T» не может быть выведен ».Общий параметр типа 'T' не может быть выведен.
public func userTappedView(headerFooterView: CollapsableTableViewSectionHeaderProtocol, atPoint location:CGPoint) {
if let tableView = self.collapsableTableView() {
//Error here
let value = sectionForUserSelectionInTableView(tableView, atTouchLocation: location, inView: headerFooterView)
...
}
...
}
func sectionForUserSelectionInTableView<T: UITableViewHeaderFooterView where T: CollapsableTableViewSectionHeaderProtocol>(tableView: UITableView, atTouchLocation location:CGPoint, inView view: T) -> NSNumber? {
...
}
вы передаете CollapsableTableViewSectionHeaderProtocol к способу, который требует UITableViewHeaderFooterView. Любой класс может реализовать этот протокол; поэтому компилятор не может сделать вывод о том, что объект, который вы передаете, является подклассом UITableViewHeaderFooterView. – titaniumdecoy
Как обеспечить соответствие подкласса UITableViewHeaderFooterView протоколу CollapsableTableViewSectionHeaderProtocol? –
Вы можете сделать это, если знаете, что это будет UITableViewHeaderFooterView или изменить определение userTappedView, чтобы потребовалось UITableViewHeaderFooterView. – titaniumdecoy