addObject для NSArrayController - PullRequest
       1

addObject для NSArrayController

0 голосов
/ 11 февраля 2011

Спасибо за помощь.

Проект Core Data.Я импортирую текст из текстового файла и хочу отобразить его в NSTextView, привязку которого value я связал с массивом контроллера selection с путем ключа модели text.Контроллер массива содержит экземпляры моей сущности, которая имеет строковый атрибут с именем text.Я хочу обновить arrayController для значения ключа, привязанного к textView, чтобы его можно было сохранить.Нет ошибок при сборке, но не работает.Как мне это сделать?

id newObject = [arrayController newObject];

[arrayController addObject:newObject forKey:@"text"];

[newObject release];

1 Ответ

0 голосов
/ 13 февраля 2011
[arrayController addObject:newObject forKey:@"text"];

Это «не работает», потому что NSArrayController не отвечает на такое сообщение.Контроллер массива контролирует массив, а не отображение значения ключа;у него нет ключей, для которых вы можете добавлять объекты.

Это, в свою очередь, объясняется тем, что «массив» в Какао означает упорядоченный последовательный список, а не ассоциативный массив.Какао называет сопоставление ключ-значение / ассоциативный массив « словарь ».

Путь к ключу модели в точности такой: путь к ключу в модели свойстваВы хотите связать текстовое представление с.Вы, кажется, уже знаете это;Я предполагаю, что вы ввели text здесь, потому что это то, что вы назвали атрибутом в вашей модели.Ваша привязка верна.

Но это также означает, что «text» не имеет никакого отношения к контроллеру массива.Это свойство модели объектов, а не контроллера.Вам нужно установить это свойство объекта модели - в данном случае newObject - а не в контроллере.

...