Realm - Add file with initial data to project (iOS/Swift)

后端 未结 7 1463
独厮守ぢ
独厮守ぢ 2020-12-23 12:47

I\'m developing an application for iOS using swift and chose Realm as a database solution for it. I wrote default data in AppDelegate using write/add function from realm doc

7条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-23 13:12

    Work in the enterprise space, I need to open a Realm for each application without reusing Realm across all applications so I put this together for Swift 3.0. Add this function to the AppDelegate.

    func openRealm()
       {
          let appName = "ApplcationNameGoesHere"
          var rlmConfig = Realm.Configuration()
          let defaultRealmPath = Realm.Configuration.defaultConfiguration.fileURL!
          let appRealmPath = defaultRealmPath.deletingLastPathComponent().appendingPathComponent("\(appName).realm")
          if !FileManager.default.fileExists(atPath: appRealmPath.path) {
         // Use the default directory, but replace the filename with the application name: appName
             rlmConfig.fileURL = rlmConfig.fileURL!.deletingLastPathComponent().appendingPathComponent("\(appName).realm")
    
         }else
          {
             rlmConfig.fileURL = appRealmPath
          }
          // Set this as the configuration used for the default Realm
          Realm.Configuration.defaultConfiguration = rlmConfig      
       }// open the Realm database for the application
    

    The code above opens or creates a Realm with the file name of "ApplicationNameGoesHere.realm" based on the appName variable in this example.

    place

    openRealm() before return true in application: didFinishLaunchingWithOptions
    
    
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
          // Override point for customization after application launch.
          openRealm()
    
          return true
    

    }

    call it in another class like this:

    let uiRealm = try! Realm()
    

提交回复
热议问题