Новый проект Новая модель NSPersistentDocument У этого NSPersistentStoreCoordinator нет постоянных хранилищ
Я искал stackru и Googling в течение нескольких часов. Я сделал простой проект, чтобы возиться с Core Data и привязками. Это добавило сущность к модели, и она больше не будет работать. Я получал сообщение "Этот NSPersistentStoreCoordinator не имеет постоянных хранилищ. Он не может выполнить операцию сохранения" всякий раз, когда пытался добавить данные в новый документ. Я следовал каждому совету, который мог найти без удачи.
Наконец, я сделал новый проект (на основе NSPersistentDocument) и создал новую модель с нуля. Я удостоверился, что модель была прекрасна прежде, чем я управлял проектом впервые.
В WindowControllerDidLoadNib: проект вызывает метод для добавления данных. Перед процедурой addData я регистрирую ManagedObjectContext и ManagedObjectModel. Ни один из них не ноль.
Я все еще получаю этот%$ & # @! ошибка.
У кого-нибудь есть новые идеи по этому поводу?
РЕДАКТИРОВАТЬ: Может ли это быть потому, что новый документ без названия никогда не был сохранен? Если так, то как вы справляетесь с этим? Можете ли вы сохранить документ без названия? Вы действительно хотите?
У меня была похожая проблема некоторое время назад при импорте файлов. Поскольку у меня был полный контроль, я назвал и сохранил документ, а затем смог сохранить контекст.
1 ответ
Как я указывал в комментарии выше, по крайней мере в Mountain Lion вам нужно сохранить документ хотя бы один раз, прежде чем вы сможете сохранить контекст. Я провел несколько экспериментов, и небольшое количество измененных данных было сохранено с помощью автосохранения без сохранения контекста. Я изменил свой метод saveContext следующим образом:
- (void)saveContext {
if (![self fileURL]) {
NSLog(@"Can't save context. No file name has been set.");
return;
}
NSError *error = nil;
if (![self.managedObjectContext save:&error]) {
[NSApp presentError:error];
NSLog(@"Error userInfo: %@",[error userInfo]);
abort();
}
}