сохранение основных данных - PullRequest
1 голос
/ 24 мая 2011

Я создал объект-сущность и попытался сохранить его на sqllite, скажем, сохранение выполнено, без ошибок, но он не отображался в базе данных, чтобы предложить решение для

Я использую следующий код

Studies *study_NEW = (Studies *)[NSEntityDescription insertNewObjectForEntityForName:@"Studies" inManagedObjectContext:managedObjectContext_NEW];

study_NEW.SudyID = study.SudyID;
error = nil;
if (![study_NEW.managedObjectContext save:&error]) {
// Handle error
NSLog(@"Unresolved error study %@, %@", error, [error userInfo]);
abort();  // Fail
}
else{
NSLog(@"Study inserted successfuly");
}

Ответы [ 2 ]

2 голосов
/ 24 мая 2011
Studies *study_NEW = (Studies *)[NSEntityDescription insertNewObjectForEntityForName:@"Studies" inManagedObjectContext:managedObjectContext_NEW];

//study_NEW.SudyID = study.SudyID;

[study_NEW setSudyID:[study SudyID]];

ИЛИ

[study_NEW setSudyID:study.SudyID];

error = nil;
if (![study_NEW.managedObjectContext save:&error]) {

// Handle error
NSLog(@"Unresolved error study %@, %@", error, [error userInfo]);

exit(-1);  // Fail

}

else{

NSLog(@"Study inserted successfuly");

}
1 голос
/ 24 мая 2011

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

. Я думал, что сохранение, отправленное на NSManagedObjectContext без постоянного хранилища, - NOP, операция не выполняется, что всегда должно выполнятьсяПоэтому я попробовал это с одним из моих проектов, закомментировал прикрепление постоянного хранилища к контексту и запустил программу.Программа вызвала исключение при попытке сохранить.Поэтому у вас должно быть постоянное хранилище, иначе сообщение сохранения, отправленное в ваш контекст, вызовет исключение.

Так что же такое managedObjectContext_NEW?Это свойство вашего объекта?Есть ли у него метод доступа, который создает новый NSManagedObjectContext, перекрывающий старый контекст и перезаписывающий постоянное хранилище?Каждый раз, когда вы получаете доступ к этому свойству, вы можете стирать все ранее сохраненные данные.

Этот пример кода подходит.Проблема в другом месте с настройкой контекста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...