Вам необходимо понимать, что такое [формальный] протокол Objective-C, в том числе то, что он определяет обязательные и/или необязательные методы. См. документацию Apple по Objective-C. Протоколы — это ограниченная форма множественного наследования, при которой наследуется только поведение, но не состояние. В других языках это может называться interface
или mix-in
.
Соответствие протоколу означает, что ваш класс реализует все обязательные методы и, возможно, ни один, некоторые или все необязательные методы.
Как правило, протокол используется для делегатов. Это средство формализации API, которое класс требует от своего делегата. Для данного протокола делегата вам необходимо понимать этот API. Обратитесь к документации Apple относительно этого конкретного протокола.
Наконец, нет ни способа, ни необходимости объявлять, что ваш класс MacRuby соответствует какому-либо протоколу. Вы можете напрямую назначить свой экземпляр класса делегату клиентского объекта. Вы по-прежнему должны соответствовать протоколу, но проверки во время компиляции не будет. Если вы не соответствуете требованиям, вы можете ожидать исключение во время выполнения. Или какое-то странное поведение. Или что-то.
Во всяком случае, это мое понимание.
person
Jean-Denis Muys
schedule
06.01.2012