Создать объект программно и добавить его в контроллер массива - PullRequest
0 голосов
/ 20 января 2012

У меня есть контроллер массива, который связан с nstableview.У меня также есть некоторые nstextfields, которые пользователь заполняет, затем нажимает кнопку «Добавить».Я хочу взять эти поля, first_name и last_name, и использовать их для заполнения сущности.Я назову сущность PersonEntity.

Так что в делегате для кнопки добавления я получаю строковые значения для 2 текстовых полей, заполняю сущность, затем добавляю ее в контроллер массива.Я новичок в какао / цель-с.Это кажется простой вещью, но кажется, что я не могу создать сущность, как я ожидаю

PersonEntity* person
[person setFirst_name:firstName];
[person setLast_name:lastName];
[customerArray addObject:person];

Она вылетает, говоря, что я не могу добавить nil в строке [customerArray addObject: customer].Эта строка - моя попытка добавить объект в контроллер массива, который связан с табличным представлением.Как правильно сделать что-то подобное?

1 Ответ

3 голосов
/ 20 января 2012

Я не уверен, является ли PersonEntity Базовым объектом данных, но так как ваш вопрос также помечен как Базовые данные, я предполагаю, что это так.

Если ваш ArrayController (тот, который привязан к вашему NSTableView), привязан к источнику CoreData, вы не добавляете объекты непосредственно к нему. Вместо этого вы добавляете его в свой managedObjectContext, и он будет отражаться на вашем NSTableView.

Код должен выглядеть следующим образом:

 PersonEntity *person = [NSEntityDescription insertNewObjectForEntityForName:@"PersonEntity"
                                        inManagedObjectContext: managedObjectContext];

[person setFirst_name:firstName];
[person setLast_name:lastName];

/* Save Event */
NSError * error = nil;
[__managedObjectContext save: &error];

Надеюсь, это поможет! Mane

...