Есть ли способ в Obj-C передать класс в качестве параметра, соответствующего протоколу?
Например, скажем, у меня есть набор классов, соответствующих этому протоколу:
@protocol IMyProtocol <NSObject>
+ (id)someMethodINeed;
@end
Я хочу настроить метод, который принимает любой класс, соответствующий этому протоколу.
@interface SomeClass : NSObject <IMyProtocol>
@interface AnotherClass : NSObject<IMyProtocol>
Я хочу создать такой метод:
- (void)doSomething:(Class<IMyProtocol>)customClass
{
[customClass someMethodINeed];
//A whole bunch of other code I don't want to copy/paste each time
}
И вызвать его с любым из этих классов
[self doSomething:SomeClass];
[self doSomething:AnotherClass];
Я не могу понять,хотя синтаксис. Это возможно?