sqlite-файл CoreData в NSBundle

У меня есть файл JSON. Размер составляет около 20 МБ.

Проект 1. Итак, я создал проект и импортировал данные из этого файла JSON в Core Data. Core Data создает следующие файлы sqlite: wholeDataList.sqlite, wholeDataList.sqlite-shm и fullDataList.sqlite-wal. Копирование всего содержимого из JSON в основные данные и единовременное создание файла заняло 10 минут.

Сейчас в Project2. Я скопировал все три файла в MainBundle. Я должен создать .xcdatamodeld, как будто я напрямую копирую его из Project1, он не находит файл .momd.

    NSURL *storeURL = [[NSBundle mainBundle] URLForResource:@"entireDataList" withExtension:@"sqlite"];
    store =[[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedModel]];
    NSError *error;
[store addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error];

Итак, является ли storeURL от NSBundle mainBundle надежным подходом, где хранятся файлы wholeDataList.sqlite, fullDataList.sqlite-shm и wholeDataList.sqlite-wal?

Как правило, они находятся в каталоге документов.


person NNikN    schedule 07.08.2016    source источник
comment
Таким образом, намерение состоит в том, что это начальные данные для запуска приложения, но затем они могут быть отредактированы пользователем, а изменения сохранены?   -  person Wain    schedule 07.08.2016
comment
Да, это похоже на отсутствие пользовательской записи.. Я c, где вы это тоже указываете.. т.е. я смогу читать, но не писать?   -  person NNikN    schedule 08.08.2016


Ответы (1)


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

person Wain    schedule 08.08.2016