Как вы получаете основные модели данных в структуру? - PullRequest
0 голосов
/ 09 ноября 2011

Я создал каркас для своего проекта основных данных, который анализирует и сохраняет конкретную подачу в основные данные.Я хочу упаковать этот фреймворк, чтобы всякий раз, когда я захочу снова проанализировать этот фид, я мог просто перетащить фреймворк в другой проект.Однако, когда я пытаюсь перетащить свою платформу в другой проект, новый проект не может найти модель базовых данных (даже если я включил ее в платформу).

Я обнаружил, что если я включаю базовые данныеСоздайте модель в структуре, а затем перетащите файлы базовой модели данных (один из них называется DataModel.xcdatamodeld, а другой - DataModel.xcdatamodel) в мой новый проект, после чего проект сможет найти базовую модель данных, а затем проанализировать и сохранить данные, как ожидается.. Прикреплены некоторые рисунки, иллюстрирующие две модели данных, которые я должен включить в свою структуру, и две модели, которые я должен перетащить в новый проект.

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

Спасибо

1 Ответ

1 голос
/ 18 мая 2012

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

+ (NSManagedObjectModel*)createModelForClass:(Class)modelClass
{
    NSManagedObjectModel *model = 
    [NSManagedObjectModel mergedModelFromBundles: 
     [NSArray arrayWithObject: [NSBundle bundleForClass: modelClass]]];
    NSAssert(model != nil, @"Unable to initialize a data model");    
    return model;
}

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

...