我正在创建一个 UITableViewController 子类(称为“MyTableViewClass”,最终将针对特定的表视图控制器进行子类化(称为“MySpecificTableViewClass”。理想情况下,我希望 MySpecificTableViewClass 中的一些方法是“必需”,即让开发人员界面说“实现不完整”。有没有办法做到这一点而不必在 MyTableViewClass 的协议中声明?
MyTableViewClass.h
#import <UIKit/UIKit.h>
@class MyTableViewClass;
@protocol MyTableViewClassProtocol <NSObject>;
-(void) fooBar;
@end
@interface MyTableViewClass : UITableViewController <NSFetchedResultsControllerDelegate, MyTableViewClassProtocol>
....
这将在我的 MyTableViewClass 实现中表明我“忘记”了实现 fooBar。我想我可以用存根方法来处理它(这是最好的方法吗?)。
MySpecificTableViewClass.h
....
#import "MyTableViewClass.h"
@interface MySpecificTableViewClass : MyTableViewClass
....
在 MySpecificTableViewClass 的实现中 - 没有警告表明我错过了
-(void) fooBar
如果我将 MySpecificTableViewClass.h 更改为
....
#import "MyTableViewClass.h"
@interface MySpecificTableViewClass : MyTableViewClass <MyTableViewClassProtocol>
....
然后我确实收到了警告,但是记住定义协议似乎违反直觉,或者我完全错过了什么?