Привязки, свойства и постоянство объекта

Во-первых: я действительно надеюсь, что поставил вопрос в нужном месте, поэтому, пожалуйста, поправьте меня, если я на неправильном пути...!

У меня есть окно для отображения данных, которые обновляются с интервалами в виде таблицы. Эти данные управляются Controller Объект, который является источником данных таблицы. WindowController имеет свойство контроллера, которое связано с Controller объект в ИБ:

@implementation WindowController

- (id) initWithWindowNibName:(NSString *)windowNibName {
    self = [super initWithWindowNibName:windowNibName];
    if (self) {
        _controller = [[Controller alloc] init];
    }
    return self;
}

- (void) windowDidLoad {
...

Кроме того, у меня есть WindowHandler класс, который имеет статическую ссылку на WindowController с методами класса для открытия и закрытия окна:

static WindowController * windowController = nil;

@implementation WindowHandler

+ (void) initialize {
    if (self == [WindowHandler class]) {
        if (!windowController) {
            windowController = [[WindowController alloc] initWithWindowNibName:kWindowNibKey];
        }
    }
}

+ (void) showWindow:(id)sender {
    [windowController showWindow:sender];
}

...

Поскольку я хочу отслеживать данные, которые должны отображаться в окне, еще до того, как окно открывается в первый раз, я делаю [WindowHandler initialize] в моем AppDelegate"s applicationDidFinishLaunching:, Это инициирует WindowController и, следовательно, Controller объект. Контроллер начинает мониторинг данных после запуска, что является моим желаемым результатом.

Проблема возникает, когда окно открывается впервые: новый экземпляр Controller Объект инициируется, очевидно, когда загружается кончик окна. С этого времени два Controller объекты работают и наблюдают за данными, которые не только не нужны, но и увеличивают загрузку процессора. Более того, я подозреваю, что это нередко приводит к сбоям (иногда я получаю исключения: "insertRowsAtIndexes: withRowAnimation: не может произойти при обновлении видимых строк!").

Я предполагаю, что упускаю что-то в концепции свойств объекта или, может быть, в концепции привязок. Я что-то не так делаю? Или есть хороший способ сделать то, что я пытаюсь сделать? Любая помощь приветствуется! Заранее спасибо!

0 ответов

Другие вопросы по тегам