Какао (Mac): разделение / объединение основного приложения на основе данных из / в несколько файлов сохранения - PullRequest
1 голос
/ 04 января 2012

Я работаю в OS X Lion над приложением Какао с базовыми данными, где мне нужно иметь возможность сохранять разные части, скажем, части A и части B, модели данных в отдельных файлах.

Iнеобходимо иметь возможность сохранять оба файла вместе как файл / пакет проекта, а также иметь возможность загружать и сохранять partA независимо от partB.

Загрузка нового файла partA должна заменить все данные, в настоящее время связанные с partA,Сохранение partA не должно сохранять данные, измененные в partB.

Объекты в partA должны поддерживать отношения с объектами в partB, но они могут (и, скорее всего, должны) быть слабыми.

Мой главный вопросявляется: Каков наилучший подход для реализации желаемых функций?


Мой первый подход был один NSManagedObjectModel, содержащий две конфигурации, по одной для каждой из частей.У меня есть два экземпляра NSPersistentStore, назначенные моему NSPersistentStoreCoordinator по одному для каждой конфигурации.И один экземпляр NSManagedObjectContext с назначенным ему storeCoordinator.

Сохранение и открытие отдельных файлов в настоящее время являются моей главной задачей в этой аппроксимации.Сообщение NSManagedObjectContext -save:, похоже, сохраняет обе конфигурации.Можно ли сохранить только изменения, внесенные в объекты, относящиеся к определенной конфигурации NSManagedObjectModel?Или мне нужно два NSManagedObjectContext экземпляра, по одному для каждой из конфигураций?

Открытие файла путем добавления хранилища в persistentStoreCoordinator для partA добавляет данные в контекст, и до сих пор я не смогзаменить данные.Есть ли способ узнать, какое хранилище связано с определенной конфигурацией, возможно, отправив сообщение на persistentStoreCoordinator?

Я также подумываю о втором подходе: настройка двух подклассов NSPersistentDocumentодин для каждой конфигурации в моей модели данных, чтобы иметь возможность сохранять данные в отдельных файлах.Но я не уверен, что два отдельных экземпляра NSManagedObjectContext позволят установить отношения между NSManagedObject подклассами в разных конфигурациях?

Если у кого-то есть хорошая идея или она может указать мне правильное направление илидаже есть пример того, как я мог бы реализовать вышеупомянутые функции, который был бы очень признателен.

...