Разделение объектов интерфейса Objective-C и реализации - PullRequest
0 голосов
/ 02 января 2012

Мое личное предпочтение - отделение выполнения кода от объектов интерфейса.Например, скажем, у меня есть класс содовой.Класс Soda имеет такие свойства, как вес, рост и название бренда.

Скажем, у меня также есть другой класс, называемый "Мозг".

Я хочу, чтобы мозг заполнил NSTable объектами Soda,пока я только хочу, чтобы мой класс AppDelegate объявлял объекты интерфейса.


AppDelegate.h

@interface AppDelegate : NSObject <NSApplicationDelegate>

@property (assign) IBOutlet NSTableView * sodaTable;

@end

Brain.m

@implementation Brain : NSObject

- (void)aquireCaffine
{
    /*   Do stuff here that populates the sodaTable  */
}

AnyФорма разделения будет делать.Я также хочу сказать, что я не хочу, чтобы appDelegate обрабатывал вызов.Это означает, что я бы предпочел не делать следующее с AppDelegate.h:

[self aquireCaffineUsingTable:sodaTable];

Возможно, я делаю что-то крайне не ориентированное на Objective-C, но у меня есть свои предпочтения, не так ли?

1 Ответ

1 голос
/ 02 января 2012

Вы можете разрешить вашему приложению делегировать только объекты интерфейса. В какой-то момент вам нужно установить источник данных таблицы на объект, который реализует протокол источника данных таблицы (NSTableViewDataSource). Этот объект заполняет таблицу всякий раз, когда вызывается метод таблицы -reloadData. Вы можете установить источник данных таблицы в коде или в Интерфейсном Разработчике. См. документы для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...