我将在遵循继承树的几个类中分配协议,如下所示:
第一个类
稍后我将把该类作为其他类的委托属性来分配。
基类。
子类
在这个过程的结尾,AppClassesFriend有两个属性。当它被分配一个BaseClass对象时,“levelOneDelegate”可以访问“functionA”。
然而,我发现当它被分配一个SubClass对象时,“levelTwoDelegate”只能访问“functionB”。
为了使AppClassesFriend能够使用两个函数,似乎我需要同时分配levelOneDelegate和levelTwoDelegate。
是否有任何方法使“levelTwoDelegate”可以访问两个函数?因为这两个函数都在“SubClass”上可用。
所以,我想做的是:
感谢任何人抽出时间一直阅读到这里。因此,总结一下问题是,我如何让"levelTwoDelegate"能够访问functionA和functionB?
第一个类
@protocol LevelOne
- (void) functionA
@end
@interface BaseClass : NSObject <LevelOne> {
}
第二类
@protocol LevelTwo <LevelOne>
- (void) functionB
@end
@interface SubClass : BaseClass <LevelTwo> {
}
稍后我将把该类作为其他类的委托属性来分配。
基类。
@interface AppClass : NSObject {
@protected
id<LevelOne> levelOneDelegate;
}
@property (assign) id<LevelOne> levelOneDelegate;
子类
@interface AppClassesFriend : AppClass {
@protected
id<LevelTwo> levelTwoDelegate;
}
@property (assign) id<LevelTwo> levelTwoDelegate;
在这个过程的结尾,AppClassesFriend有两个属性。当它被分配一个BaseClass对象时,“levelOneDelegate”可以访问“functionA”。
然而,我发现当它被分配一个SubClass对象时,“levelTwoDelegate”只能访问“functionB”。
为了使AppClassesFriend能够使用两个函数,似乎我需要同时分配levelOneDelegate和levelTwoDelegate。
是否有任何方法使“levelTwoDelegate”可以访问两个函数?因为这两个函数都在“SubClass”上可用。
所以,我想做的是:
SubClass *s = [SubClass alloc];
AppClassesFriend *a = [AppClassesFriend alloc];
a.levelTwoDelegate = s;
所以在AppClassesFriend(a)中,我可以使用:
[self.levelTwoDelegate functionA]; <---- this is never found
[self.levelTwoDelegate functionB];
但似乎我必须添加
a.levelOneDelegate = s;
感谢任何人抽出时间一直阅读到这里。因此,总结一下问题是,我如何让"levelTwoDelegate"能够访问functionA和functionB?