Я разработал приложение до сих пор. Теперь я пишу новый, и в этом проекте я хочу, чтобы код был очень чистым, поэтому очень легко найти методы.
Я хочу начать с UIViewControllers, чье представление имеет UITableView как subview. Я хочу иметь файл с именем DetailViewController
для всех функций, которые принадлежат ему непосредственно. Другой файл с именем DetailViewController+Protocols
должен содержать категорию класса выше и все эти методы делегирования UITableView.
Можно ли сделать что-то подобное? Я хочу, чтобы мой код был чистым и разделил его на несколько файлов.
ИЗМЕНИТЬ
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. Без изменений.
Затем я попробовал это, не обращая внимания на предупреждения и посмотрел: это сработало! Но почему? Не следует ли работать без этих предупреждений?