Поддерживает ли Objective-C трейты / примеси?

Существуют ли какие-либо методы для эмуляции трейтов или миксинов в 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, от которого все мои контроллеры являются подклассами, но было бы лучше, если бы я мог сломать его и заставить определенные контроллеры унаследовать определенное поведение.

12
задан Bill 8 April 2011 в 21:59
поделиться