Имам следния метод:
-(void)SomeMethod:(id)classOrProtocol;
Ще се нарича така:
[self someMethod:@protocol(SomeProtocol)];
Or
[self someMethod:[SomeClass class]];
В тялото на метода трябва да реша дали |classOrProtocol| е:
Всеки клас (клас) ИЛИ всеки протокол (протокол) ИЛИ нещо друго
[[classOrProtocol class] isKindOfClass: [Protocol class]]
Резултати от грешка (компилация):
„Протоколът“ на приемника е препратен клас и съответният @интерфейс може да не съществува
И така, как мога да различа протокол от клас от нещо друго?