Существуют ли какие-либо методы для эмуляции трейтов или миксинов в Objective-C?
В Scala, например, я могу сделать что-то вроде этого:
trait ControllerWithData {
def loadData = ...
def reloadData = ...
def elementAtIndex = ...
}
trait ControllerWithStandardToolbar {
def buildToolbar = ...
def showToolbar = ...
def hideToolbar = ...
}
class MyTableController extends ControllerWithData
with ControllerWithStandardToolbar {
def loadView = {
super.loadView
loadData
buildBar
}
}
По сути, это способ объединить (или подмешать) несколько частей функциональности в один класс. Итак, прямо сейчас у меня есть своего рода универсальный UIViewController, от которого все мои контроллеры являются подклассами, но было бы лучше, если бы я мог сломать его и заставить определенные контроллеры унаследовать определенное поведение.