Как загрузить PersistentDocuments в одно и то же окно - PullRequest
0 голосов
/ 30 апреля 2010

Я хочу открыть NSPersistentDocuments и загрузить их в одно и то же окно по одному. Я почти там, но пропускаю несколько шагов. Надеюсь, кто-нибудь сможет мне помочь.

У меня есть несколько сохраненных документов на жестком диске. При запуске мое приложение открывается без названия NSPersistentDocument и создает отдельный NSWindowController. Когда я нажимаю кнопку, чтобы загрузить файл 1 с жесткого диска, в полях появляются данные, но я вижу две неправильные вещи:

1) изменение данных не делает документ грязным
2) выбор сохранения обновляет постоянное хранилище (я знаю это, потому что когда я снова открываю файл, я вижу изменения), но я получаю ошибку: + entityForName: не удалось найти NSManagedObjectModel для имени сущности 'Book'

Вот мой код, который находится в WindowController, который был изначально запущен с документом без названия. Этот код не идеален. Например, я знаю, что должен обработатьPendingChanges и сохранить текущий документ перед тем, как загрузить новый. Это тестовый код, чтобы попытаться преодолеть это препятствие.

- (IBAction)newBookTwo:(id)sender {
 NSDocumentController *dc = [NSDocumentController sharedDocumentController];
 NSURL *url = [NSURL fileURLWithPath:[@"~/Desktop/File 2.binary" stringByExpandingTildeInPath]];

 NSError *error;
 MainWindowDocument *thisDoc = [dc openDocumentWithContentsOfURL:url display:NO error:&error];

 [self setDocument:thisDoc]; 
 [self setManagedObjectContext:[thisDoc managedObjectContext]];
}

Спасибо!

Ответы [ 2 ]

0 голосов
/ 01 мая 2010

Установите точку останова и посмотрите, равна ли ваша модель нулю.

0 голосов
/ 30 апреля 2010

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

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