Будет ли Core Data создавать файл постоянного хранилища для меня? - PullRequest
4 голосов
/ 10 февраля 2010

Пожалуйста, скажите мне: если я использую Core Data в своем приложении для iPhone, у меня есть два файла. Файл mydatamodel.xcdatamodel, а затем мне нужен файл .sqlite. Apple предоставляет этот фрагмент кода:

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
    if (persistentStoreCoordinator != nil) {
        return persistentStoreCoordinator;
    }

    NSString *appDirPath = [self applicationDocumentsDirectory];
    NSString *storeFileName = @"mystore.sqlite";
    NSURL *storeUrl = [NSURL fileURLWithPath:[appDirPath stringByAppendingPathComponent:storeFileName]];

    NSError *error = nil;
    persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];

    if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
        NSLog(@"Error: %@, %@", error, [error userInfo]);
        abort();
    }

    return persistentStoreCoordinator;
}

Будет ли это создавать файл, если он еще не доступен?

[persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]

Моему приложению не нужны начальные данные, потому что оно загрузит их при запуске приложения пользователем.

Ответы [ 3 ]

7 голосов
/ 10 февраля 2010

Да, Core Data создаст базу данных SQLite сразу после первого запуска приложения в делегате приложения.

2 голосов
/ 10 февраля 2010

Да. Исходный код стека базовых данных, предоставленный шаблонами Apple, создаст файл базы данных, если он еще не существует.

1 голос
/ 10 февраля 2010

Да, этот метод добавляет новое постоянное хранилище указанного типа в заданном месте и возвращает новое хранилище. Вот документация .

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