Это, кажется, ответ на совершенно другой вопрос.
ective-C можно передать класс в качестве параметра методу:
- (void) methodThatTakesClass:(Class)theClass;
И в качестве параметра можно передать экземпляр, соответствующий протоколу:
- (void) myConformInstance:(id <MyProtocol>)theObject;
Можно ли использовать комбинированный функционал? Метод, который принимает класс, соответствующий определенному протоколу.