我正在創建一個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實現中,我ha已經「忘記」實施fooBar。我想我可以用存根方法來處理它(這是最好的方法嗎?)。
MySpecificTableViewClass.h
....
#import "MyTableViewClass.h"
@interface MySpecificTableViewClass : MyTableViewClass
....
在MySpecificTableViewClass執行 - 沒有警告顯示,我很想念
-(void) fooBar
如果我改變MySpecificTableViewClass.h到
....
#import "MyTableViewClass.h"
@interface MySpecificTableViewClass : MyTableViewClass <MyTableViewClassProtocol>
....
然後我確實得到警告,但記住來定義協議,似乎反直覺,還是我完全錯過了什麼?
我現在明白了。現在我剛剛完成了你在第1段中所描述的內容(除了我使用了NSException)以外,沒有辦法讓開發者環境在運行前看到它。你的第2段的解決方案似乎更優雅,但現在,因爲我已經完成了大部分代碼的子類化UITableViewController,這將做。 – 2013-02-28 23:16:47