Существуют другие преимущества для наследования также - такие как способность к переменной, чтобы быть в состоянии содержать объект или родительского класса или наследованного класса (не имея необходимость объявлять его как что-то универсальное, как "Объект").
, Например, в.NET WinForms, большинство компонентов UI происходит из Системы. Windows. Формы. Управление, таким образом, переменная объявила, поскольку это могло "содержать" примерно какой-либо элемент UI - действительно ли это быть кнопкой, ListView, или что имеет Вас. Теперь, предоставленный, у Вас не будет доступа ко всем свойствам или методам объекта, но у Вас будет весь основной материал - и это может быть полезно.
Вот расширение UITableView, это - удобный ярлык для обновления tableView заголовков заголовка/нижнего колонтитула, на основе некоторых ответов выше (отметьте искусственный uppercasing заголовка заголовка).
extension UITableView {
func refreshHeaderTitle(inSection section: Int) {
UIView.setAnimationsEnabled(false)
beginUpdates()
let headerView = self.headerView(forSection: section)
headerView?.textLabel?.text = self.dataSource?.tableView?(self, titleForHeaderInSection: section)?.uppercased()
headerView?.sizeToFit()
endUpdates()
UIView.setAnimationsEnabled(true)
}
func refreshFooterTitle(inSection section: Int) {
UIView.setAnimationsEnabled(false)
beginUpdates()
let footerView = self.footerView(forSection: section)
footerView?.textLabel?.text = self.dataSource?.tableView?(self, titleForFooterInSection: section)
footerView?.sizeToFit()
endUpdates()
UIView.setAnimationsEnabled(true)
}
func refreshAllHeaderAndFooterTitles() {
for section in 0..<self.numberOfSections {
refreshHeaderTitle(inSection: section)
refreshFooterTitle(inSection: section)
}
}
}