我有一个类层次结构如下
@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)
中+load
中的实施,但我遇到+load
PTLFetchedDatasource (TableViewExtensions)
之前调用+load
的问题在PTLDatasource (TableViewExtensions)
中,由于-foo:
的PTLDatasource实现尚不存在,所以调配失败。
有没有办法解决此加载时间问题?
我甚至需要调皮吗?我知道在一个类别中覆盖类成员方法是禁忌,但我可以从[super foo:]
实现中调用PTLFetchedDatasource (TableViewExtensions)
吗?
感谢。
答案 0 :(得分:1)