У меня есть базовая модель данных с сущностью, называемой клиенты , которая состоит из следующих атрибутов:
Если я нажимаю на ' добавить клиентскую кнопку 'и вызвать следующее окно:
Какой будет правильный метод для программного добавления новой записи для каждого свойства одновременно (вПо аналогии с тем, как связанная кнопка «Добавить» будет работать с NSArrayController
), и они будут отображаться в текстовых полях окна « add client » для редактирования?Текстовые поля в окне ' add client ' привязаны к соответствующим свойствам (при этом одно или два по-прежнему отсутствуют) объекта client .Код, который у меня есть на данный момент:
- (IBAction)addNewClient:(id)sender;
{
[addClientsWindow makeKeyAndOrderFront:self];
//NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext];
//[clientsMoc addObject:[clientsMoc newObject]];
[clientsController addObject:[clientsController newObject]];
}
, который работал для других объектов в этом проекте, но не работает для клиента , так как я добавил типы отношений (он выдает ошибки KVCв консоли).Я предполагаю, что это потому, что я обращаюсь к NSArrayController
, а не NSManagedObjectContext
, но закомментированный код не работает для меня.Эта попытка вытекает из предыдущего вопроса , так как вопрос сильно изменился, и я изо всех сил пытаюсь выполнить данный совет.Мне действительно нужна хорошая отправная точка, и документы Apple Dev не помогают мне понять это.
Заранее спасибо!
---- Обновление ----
Я плохо объясняю вещи в этом вопросе?Я новичок здесь, но подумал, что может быть попытка ответа.Гуглить это было сложно по какой-то причине.Возможно, я нашел что-то похожее на решение с помощью несвязанного поиска Google.К счастью, это имело отношение к этому.
- (IBAction)addNewClient:(id)sender;
{
[addClientsWindow makeKeyAndOrderFront:self];
NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext];
NSManagedObject *clientsEntity = [NSEntityDescription
insertNewObjectForEntityForName:@"Clients"
inManagedObjectContext:clientsMoc];
[clientsEntity setValue:@"name" forKey:@"clientName"];
[clientsEntity setValue:@"company" forKey:@"clientCompany"];
[clientsEntity setValue:@"address" forKey:@"clientAddress"];
[clientsEntity setValue:@"11111111" forKey:@"clientLandline"];
[clientsEntity setValue:@"email@gmail.com" forKey:@"clientEmail"];
}
Это создало новую запись для объекта клиентов - я не понимал, что мне нужно будет указывать индивидуальные значения для каждого свойства.Однако ошибки KVC продолжались, и я никак не мог найти решение.Документы для разработчиков Apple были действительно полезны в этом, здесь , и добавление NSBindingDebugLogLevel 1
в список «Аргументы, которые будут переданы при запуске» дало мне детали того, что именно вызвало проблему.Это была старая привязка к NSTableColumn
, которая не была обновлена.