Поместите методы делегата в категорию

Я разработал несколько приложение 'до сих пор. Сейчас я пишу новый, и в этом проекте я хочу, чтобы код был очень чистым, чтобы было очень легко найти методы.
Я хочу начать с UIViewControllers , чье представление имеет UITableView в качестве подпредставления.Я хочу иметь файл с именем 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 . Без изменений.
Затем я попробовал, игнорируя предупреждения, и увидел: сработало! Но почему? Разве это не должно работать без этих предупреждений?

18
задан Paul Warkentin 4 November 2011 в 20:28
поделиться