Я также создал свою собственную статическую библиотеку, которая использует Core Data. Помимо статической библиотеки у меня есть еще одна цель комплекта в проекте, где у меня есть элемент «Копировать комплекты ресурсов», который копирует некоторые изображения и тому подобное в комплект и на фазе сборки источников компиляции, где я собираю xcdatamodel.
Финальный комплект будет содержать все необходимые файлы. В ваш основной проект, который опирается на статическую библиотеку, вы также должны включить этот пакет. Ваш основной проект теперь будет иметь доступ к файлу мама, который необходим для использования основных данных.
Чтобы использовать базовые данные с мамой из пакета, вы должны создать в своем коде объединенную управляемую объектную модель (возможно, основной проект также имеет некоторую базовую модель данных):
- (NSManagedObjectModel *) mergedManagedObjectModel
{
if (!mergedManagedObjectModel)
{
NSMutableSet *allBundles = [[[NSMutableSet alloc] init] autorelease];
[allBundles addObjectsFromArray: [NSBundle allBundles]];
[allBundles addObjectsFromArray: [NSBundle allFrameworks]];
mergedManagedObjectModel = [[NSManagedObjectModel mergedModelFromBundles: [allBundles allObjects]] retain];
}
return mergedManagedObjectModel;
}
Если вы просто включите комплект, вам не придется выдавать xcdatamodel, необходимо включить только скомпилированный файл мамы.