Данные загрузки в базовую схему данных

Разработка программного обеспечения - ОЧЕНЬ небольшое подмножество компьютерных наук.

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

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

7
задан Andrei Tanasescu 30 June 2009 в 02:08
поделиться

3 ответа

Нет автоматического (т.е. встроенного ) для импорта данных в контекст Core Data.

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

Если у вас уже есть данные в другом формате, вы должны прочитать раздел Руководства по программированию Core Data об импорте данных в контекст Core Data . Если у вас еще нет данных в другом формате, вам придется писать код в любом случае (для создания промежуточного формата или для непосредственного заполнения контекста).

Наконец, хотя это не совсем публичный API, с форматом Core Data XML довольно легко работать вручную или с помощью любого количества инструментов на основе XML. В зависимости от сложности ваших данных, вы можете реконструировать схему XML, достаточную для создания постоянного хранилища на основе XML. Затем вы можете перенести это хранилище в постоянное хранилище SQLite, и все готово.

3
ответ дан 6 December 2019 в 09:21
поделиться

В настоящее время, насколько мне известно, вам нужно написать собственный код для заполнения базы данных.

Это действительно похоже на обратную сторону, я бы действительно хотел увидеть инструмент для пакетной обработки (оболочка ) предварительное заполнение источников данных, предназначенных для использования CoreData.

0
ответ дан 6 December 2019 в 09:21
поделиться

Вот простой способ предварительно загрузить хранилище Core Data с помощью списков.

Составьте список свойств, содержащий массив словарей. Сделайте ключи каждого словаря соответствующими ключам вашего управляемого объекта.

alt text

Затем вызовите этот метод при первом запуске приложения:

- (void)loadDataFromPropertyList {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"someFile" ofType:@"plist"];
    NSArray *items = [NSArray arrayWithContentsOfFile:path];

    NSManagedObjectContext *ctx = self.managedObjectContext;

    for (NSDictionary *dict in items) {
        NSManagedObject *m = [NSEntityDescription insertNewObjectForEntityForName:@"TheNameOfYourEntity" inManagedObjectContext:ctx];
        [m setValuesForKeysWithDictionary:dict];
    }

    NSError *err = nil;
    [ctx save:&err];

    if (err != nil) {
        NSLog(@"error saving managed object context: %@", err);
    }
}

Вызовите loadDataFromPropertyList при первом запуске приложения, включив следующий код в реализацию приложения : (UIApplication *) application didFinishLaunchingWithOptions: (NSDictionary *) launchOptions :

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  
if (![defaults objectForKey:@"firstRun"])
{
    [defaults setObject:[NSDate date] forKey:@"firstRun"];
    [[NSUserDefaults standardUserDefaults] synchronize];
    [self loadDataFromPropertyList];
}
17
ответ дан 6 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: