Когда я пытаюсь вызвать методы protocolA для объекта protocolB, я получаю предупреждения компилятора ", но как бы ограничить его только методами protocolB, я имею в виду, что он не должен позволять мне запускать код, это должно дать мне ошибку ??? Есть ли способ решить эту проблему в Objective-C?
Пример:
// this is protocolA.h
@protocol protocolA
-(void)methodA;
@end
//this is protocolB.h
#import "protocolA"
@protocol protocolB <protocolA>
-(void)methodB;
@end
//this is MyClass.h
#import "protocolA"
@interface MyClass <protocolA>
{}
@end
//this is MyClass.m
@implementation
-(void)applicationDidFinishLaunching
{
id<protocolA> objA = [[MyClass alloc]init];
[objA methodA];//Should work fine
[objA methodB];//**Sholud give me error, but only warning is prompted but able to access methodB using objA and print its contents**
}
-(void)methodA
{
NSLog(@"This is in protocolA");
}
-(void)methodB
{
NSLog(@"This is in protocolB");
}
@end
ПРИМЕЧАНИЕ. Здесь я расширяю protocolA в protocolB, но когда я создаю объект protocolA в MyClass, я должен иметь доступ только к методу A protocolA, а не к методу B protocolB.