arraycontroller nsmutablearray добавить программно

Я пытаюсь добавить данные в табличное представление через контроллер массива, который привязан к NSMutableArray. В свойстве IB это выглядит так:

Свойство IBВладелец файла

и в коде я попытался динамически добавить NSMutableArray, а затем перезагрузить представление, но ничего не произошло.

for(int i=0;i<10;i++){
        NSMutableDictionary *group = [[NSMutableDictionary alloc]init];
        [group setValue:[NSString stringWithFormat:@"%@-%d", @"Group", i] forKey:@"groupname"];
        [contentArray addObject:group];
    }
    [tableContent reloadData];

Я гуглил и просматривал тот же вопрос в stackoverflow, но не нашел полезного.

Есть идеи ?

Спасибо

обновлено

Я написал код выше в классе владельца файла.


person arufian    schedule 14.08.2012    source источник
comment
В каком классе находится код, который вы разместили? И вы зарегистрировали contentArray, чтобы убедиться, что в нем есть объекты, которые вы ожидаете?   -  person rdelmar    schedule 14.08.2012
comment
@rdelmar contentArray относится к NSMutableArray, а tableContent относится к NSTableView, который является IBOutlet.   -  person arufian    schedule 14.08.2012
comment
Это не тот вопрос, который я задал. В каком классе код, который вы разместили? Это в делегате приложения?   -  person rdelmar    schedule 14.08.2012
comment
не делегат приложения, а класс владельца файла, хорошо, я обновлю свой вопрос   -  person arufian    schedule 14.08.2012


Ответы (1)


Я думаю, проблема в том, что массив должен отправить уведомление KVO контроллеру массива (или, может быть, это табличное представление, я не уверен). Способ сделать это:

self.contentArray = ContentArray; (или _contentArray, если так называется ваш ivar). Я предполагаю, что contentArray является свойством, если нет, вы должны сделать его таковым.

person rdelmar    schedule 14.08.2012
comment
спасибо за Ваш ответ. хм... на самом деле я уже поместил свой contentArray в качестве свойства. - person arufian; 14.08.2012
comment
@arufian да, но ты добавил строку, которую я добавил в свой ответ? - person rdelmar; 14.08.2012
comment
да, я поставил тот, ничего не произошло. Кстати, могу я задать один простой вопрос (хотя это не связано). Можно ли создать nstableview с представлением для Snow Leopard? - person arufian; 14.08.2012
comment
Я не помню, можно ли это сделать на Snow Leopard. Вы используете таблицу на основе представления? Если да, то к чему привязаны столбцы? Он должен работать, должно быть что-то не так с привязками. - person rdelmar; 14.08.2012
comment
да, я использую таблицу на основе представления, у меня есть только один столбец, содержащий представление ячейки текстовой таблицы (созданный на IB), затем я привязал текстовое поле к ключу contentArray. - person arufian; 14.08.2012
comment
Я не думаю, что это правильно. Привязка содержимого табличного представления должна быть привязана к контроллеру массива аранжированныеобъекты. TextField должен быть привязан к представлению ячеек таблицы с помощью пути к ключу модели objectValue.groupName. Все это описано в Руководстве по программированию представления таблицы в разделе «Создание привязок для табличного представления на основе представления». - person rdelmar; 14.08.2012
comment
Понимаю. Но, к сожалению, из-за требований мне приходится реализовывать табличное представление на основе ячеек вместо табличного представления на основе представления. Я приму это как правильный ответ. - person arufian; 14.08.2012