Основные данные, созданные с помощью Objective C и полученные из Swift

У меня есть приложение, которое использует основные данные и написано в Objective C. Здесь мы не используем persistentContainer.

Теперь мы переписали полное приложение на Swift, и это приложение использует Realm.

Я хочу перенести одну сущность БД из основных данных в область и после этого удалить файл основных данных.

lazy var persistentContainer: NSPersistentContainer = {

    let container = NSPersistentContainer(name: "HitList")
    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
      if let error = error as NSError? {
        fatalError("Unresolved error \(error), \(error.userInfo)")
      }
    })
    return container
  }()

 var personData: [NSManagedObject] = []
            let managedContext = self.persistentContainer.viewContext

            let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: "Person")
            do {
                offlineData = try managedContext.fetch(fetchRequest)
            } catch let error as NSError {
                print("Could not fetch. \(error), \(error.userInfo)")
            }


            if  (personData.count) > 0 { // Insert DB into Relam

            }

Я получаю следующие ошибки

ошибка: не удалось загрузить модель с именем HitList CoreData: ошибка: не удалось загрузить модель с именем HitList

Во время выборки была выдана следующая ошибка.

Не удалось получить. Домен ошибки =Foundation._GenericObjCError Code=0 "(null)", [:]

Что случилось?

0 ответов

Проблема, с которой вы столкнулись, заключается в том, что стек CoreData из Objective C сохраняет базу данных по другому пути, чем persistentContainer. Поэтому он не найдет его, потому что он смотрит в другом месте. Вы можете подключить устройство и проверить его с iExplorer, и вы увидите. Чтобы перенести его, вам нужно указать местоположение.

Другие вопросы по тегам