Я занимаюсь созданием подкласса 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>
....
Тогда я сделайте предупреждение, но запомнить, чтобы определить протокол, кажется интуитивным, или я полностью что-то упустил?
Теперь я понимаю. На данный момент я только что сделал то, что вы описали в параграфе 1 (за исключением того, что я использовал NSException), чтобы плохой, нет способа заставить среду разработчика видеть это перед временем выполнения. Ваше решение параграфа 2, безусловно, кажется более изящным, но на данный момент, поскольку у меня есть большая часть кода, уже сделанного подклассифицированием UITableViewController, это будет сделано. –