2017-12-26 22 views
0

私は自分のプロジェクトに.sqliteデータベースファイルをインポートしてCoreDataStackを作成しています。インポート可能な.sqlite永続ストアの名前はどのようにする必要がありますか?

func seedCoreDataContainerIfFirstLaunch() { 
    //1 
    let previouslyLaunched = UserDefaults.standard.bool(forKey: "previouslyLaunched") 
    if !previouslyLaunched { 
     UserDefaults.standard.set(true, forKey: "previouslyLaunched") 
     // Default directory where the CoreDataStore will store its files. 
     let directory = NSPersistentContainer.defaultDirectoryURL() 
     let url = directory.appendingPathComponent(modelName + ".sqlite") 

     //2: Copying the SQLite file 
     let seedDatabaseURL = Bundle.main.url(forResource: modelName , withExtension: "sqlite")! 
     print(seedDatabaseURL) 
     _ = try? FileManager.default.removeItem(at: url) 
     do { 
      try FileManager.default.copyItem(at: seedDatabaseURL, to: url) 

     } catch let nserror as NSError { 
      fatalError("Error: \(nserror), \(nserror.localizedDescription)") 
     } 
     // 3: Copying the SHM file 

     let seededSHMURL = Bundle.main.url(forResource: modelName , withExtension: "sqlite-shm")! 
     let shmURL = directory.appendingPathComponent(modelName + ".sqlite-shm") 
     _ = try? FileManager.default.removeItem(at: shmURL) 
     do { 
      try FileManager.default.copyItem(at: seededSHMURL, to: shmURL) 
     } catch let nserror as NSError { 
      fatalError("Error: \(nserror.localizedDescription)") 
     } 

    // 4: Copying the WAL file 
     let seededWALURL = Bundle.main.url(forResource: modelName , withExtension: "sqlite-wal") 
     let walURL = directory.appendingPathComponent(modelName + ".sqlite-wal") 

    _ = try? FileManager.default.removeItem(at: walURL) 
    do { 
    try FileManager.default.copyItem(at: seededWALURL!, to: walURL) 
    } catch let nserror as NSError { 
    fatalError("Error: \(nserror.localizedDescription)") 
    } 

    print("Seeded Core Data") 
} 
} 

と私は私のxcdatamodeledファイルの名前と同じで、私の永続ストアに名前を付けなければならないのだろうか?もし私がしなければならない場合、私はどのように私のsecodpersistence店の名前を与える必要がありますか?

答えて

1

永続ストアファイルには正当なファイル名を使用できます。コアデータにはファイル名に関する規則はありません。

NSPersistentContainerはデフォルトのファイル名を使用しますが、変更することはできます。 persistentStoreDescriptionsプロパティを使用して、永続ストアファイルのURLなど、さまざまな詳細を指定できます。

+0

トムハリントン私はすでにあなたの助けを借りてこれをしています!ありがとうございました!!! –

関連する問題