我有一个类层次结构如下
@interface PTLDatasource : NSObject
...
@interface PTLFetchedDatasource : PTLDatasource
...
我想为这些在协议中定义并在类别中实现的类添加特定于平台的扩展:
@protocol PTLTableViewDatasource
- (void)foo;
...
@interface PTLDatasource (TableViewExtensions) <PTLTableViewDatasource>
...
@interface PTLFetchedDatasource (TableViewExtensions) <PTLTableViewDatasource>
...
的基本实现-foo:
在 PTLDatasource 类别中完成。但是,我还需要 PTLFetchedDatasource 的自定义实现,-foo:
然后可以回退到 PTLDatasource 实现。
目前我正在尝试在PTLFetchedDatasource (TableViewExtensions)
in 中调配实现+load
,但我遇到了在+load
inPTLFetchedDatasource (TableViewExtensions)
之前调用+load
in 的问题PTLDatasource (TableViewExtensions)
,因此调配失败,因为 PTLDatasource 的实现-foo:
尚不存在。
有没有办法解决这个加载时间问题?
我还需要调酒吗?我知道在一个类别中覆盖类成员方法是不行的,但是我可以[super foo:]
从PTLFetchedDatasource (TableViewExtensions)
实现中调用吗?
谢谢。