Открывать и манипулировать записями .xcdatamodeld-File / SQLite? - PullRequest
0 голосов
/ 14 февраля 2012

Я пытаюсь написать свое первое приложение для iPhone, которое должно работать с данными. Теперь у меня есть некоторые проблемы с предоставлением вывода - и я не уверен, насколько хорошо вставка идет в первую очередь ...

Итак, что я хочу сделать сейчас (или: что бы я сделал с настольным / серверным приложением), это проверить DB-контент и манипулировать им для тестирования ...

НО я не могу понять, как открыть БД за моими настройками модели данных. В интернете я нашел несколько советов, которые я могу найти sqlite-файл в папке .xcdatamodeld-folder. Поэтому я скачал SQLiteManager, но когда я попытался открыть файл, я получил сообщение «file is encryptet». Я никогда не добавлял пароль, и при этом это не мой пароль root.

Так как я могу открыть файл? Или есть даже решение в XCode?

1 Ответ

1 голос
/ 14 ноября 2012

Я столкнулся с тем же вопросом.И поток моих исследований приводит меня к библиотеке разработчика iOS пример .

Основная идея - создание координатора (ссылки) между нашей моделью данных и файлом * .sqlite.И этот файл мы можем наблюдать, редактировать, копировать и импортировать.

- (NSManagedObjectContext *) managedObjectContext {

    if (managedObjectContext != nil) {
        return managedObjectContext;
    }

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        managedObjectContext = [[NSManagedObjectContext alloc] init];
        [managedObjectContext setPersistentStoreCoordinator: coordinator];
    }
    return managedObjectContext;
}

- (NSManagedObjectModel *)managedObjectModel {

    if (managedObjectModel != nil) {
        return managedObjectModel;
    }
    managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];    
    return managedObjectModel;
}

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {

    if (persistentStoreCoordinator != nil) {
        return persistentStoreCoordinator;
    }

    NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"Locations.sqlite"]];

    NSError *error;
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
        // Handle the error.
    }    

    return persistentStoreCoordinator;
}

И похоже, что при работе с БД .sqlite будет создан в ~ / Library / Application Support / iPhoneСимулятор / 4.3.2 / Приложения / - * - * - * / Документы

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