При создании объекта вы можете просто сделать это:
id <protocolA> protocolAObject = [[MyClass alloc] init];
Теперь, если вы не используете явное приведение, вы не можете использовать методы protocolB.
Вы также можете привести объекты класса MyClass к protocolA или protocolB следующим образом:
MyClass *myClassObject = [[MyClass alloc] init];
id <protocolB> protocolBObject = (id <protocolB>) myClassObject;