我有一个类ClassA
定义protocol A
继承自protocol B
.
@protocol protocolA <protocolB>
-(void)anAddedMethodToTheInheritiedMethod;
@end
@interface ClassA
@property (nonatomic,weak) id <protocolA> myDelegate;
@end
在另一个类(“MyClass”)中,我收到一个符合协议 A 的对象。
@interface MyClass
@property (nonatomic,weak) id <protocolA> myDelegate;
@end
在 MyClass 的实现中,我创建了一个 ClassA 类型的对象
@implementation MyClass
-(void)someMethod
{
self.myObjectOfTypeA = [ClassA new];
self.myObjectOfTypeA.delegate = self.myDelegate;
}
@end
当然这是一个错误,因为 self.myDelegate 没有响应
“一个AddedMethodToTheInheritiedMethod”。
为了解决这个问题,我可以将 MyClass 对象设置为 ClassA 的委托,存根所有委托方法,调用 self.myDelegate 到它回答的方法,并回答来自 ClassA 的“添加”委托方法。
但这是很多样板代码,如果原始协议更改,很容易损坏。我确信有一种更清洁的方法可以实现这一目标。
如何才能做到这一点?