Я разработал некоторое приложение 'до сих пор. Сейчас я пишу новый, и в этом проекте я хочу, чтобы код был очень чистым, поэтому очень легко найти методы.
Я хочу начать с UIViewControllers , чье представление имеет UITableView в качестве подпредставления. Я хочу иметь файл с именем DetailViewController
для всех функций, которые ему непосредственно принадлежат. Другой файл с именем DetailViewController+Protocols
должен содержать категорию указанного выше класса и все эти методы делегата UITableView .
Возможно ли сделать что-то подобное? Я хочу сохранить свой код в чистоте и разбить его на несколько файлов.
EDIT
DetailViewController.h
@interface DetailViewController : UIViewController
... Some Properties
... Some Methods
@end
DetailViewController.m
#import "DetailViewController.h"
@implementation DetailViewController
... Some Synthesizes
... Some Methods
@end
DetailViewController + Protocols.h
@interface DetailViewController (Protocols) <UITableViewDelegate, UITableViewDataSource>
@end
DetailViewController + Protocols.m
@implementation DetailViewController (Protocols)
- (NSINteger)numberOfSections
{
return ...;
}
- (NSInteger)numberOfRowsInSection:(NSInteger)section
{
if (section == 0)
return ...;
return ...;
}
...
@end
Но тогда Xcode показывает предупреждение о том, что некоторые методы делегата не реализованы в DetailViewController. Я также попробовал это с импортом DetailViewController + Protocols.h в DetailViewController.h . Без изменений.
Тогда я попробовал это с игнорированием предупреждений и вижу: это работало! Но почему? Разве это не должно работать без этих предупреждений?