簡體   English   中英

使用Objective C創建並從Swift獲取的核心數據

[英]Core data created with Objective C and fetch from 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的模型

在獲取期間,引發了以下錯誤。

無法提取。 Error Domain = Foundation._GenericObjCError Code = 0“(null)”,[:]

怎么了?

您遇到的問題是,Objective C中的CoreData堆棧將數據庫保存到與persistentContainer不同的路徑。 因此,找不到它是因為它在其他位置。 您可以連接設備並使用iExplorer對其進行檢查,您會看到。 要遷移它,您需要引用位置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM