领域 – 添加具有初始数据项目的文件(iOS / Swift)

前端之家收集整理的这篇文章主要介绍了领域 – 添加具有初始数据项目的文件(iOS / Swift)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用 swift开发iOS应用程序,并选择了Realm作为数据库解决方案.我在AppDelegate中使用写入/添加功能从领域文档编写了默认数据,它的工作原理很好.所以在第一次启动后,我有一个* .realm文件与我的初始数据.在Realm文档中,我发现了一个名为 “Bundling a Realm with an App”的部分,我将* .realm文件添加到项目中并构建阶段.

我不明白我下一步应该做什么(关于压缩* .realm文件的一部分).我试图从Migration Example了解一个代码,但是我不知道Obj-C.

请尽可能明确的步骤,添加* .realm文件与初始数据swift ios项目,并将该数据加载到Realm数据库与第一次启动.

解决方法

在AppDelegate中实现这个函数openRealm并调用
  1. func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
  2. ...
  3. openRealm()
  4.  
  5. return true
  6. }
  7.  
  8. func openRealm() {
  9.  
  10. let defaultRealmPath = Realm.defaultPath
  11. let bundleReamPath = NSBundle.mainBundle().resourcePath?.stringByAppendingPathComponent("default.realm")
  12.  
  13. if !NSFileManager.defaultManager().fileExistsAtPath(defaultRealmPath) {
  14. NSFileManager.defaultManager().copyItemAtPath(bundleReamPath!,toPath: defaultRealmPath,error: nil)
  15. }
  16. }

它会将您在应用程序中捆绑的领域文件复制到默认领域路径(如果尚不存在).之后,您通常像以前使用过的领域.

还有你在Swift讨论的迁移示例.

在Swift 3.0.1中,您可能更喜欢:

  1. let defaultRealmPath = Realm.Configuration.defaultConfiguration.fileURL!
  2. let bundleRealmPath = Bundle.main.url(forResource: "seeds",withExtension: "realm")
  3.  
  4. if !FileManager.default.fileExists(atPath: defaultRealmPath.absoluteString) {
  5. do {
  6. try FileManager.default.copyItem(at: bundleRealmPath!,to: defaultRealmPath)
  7. } catch let error {
  8. print("error copying seeds: \(error)")
  9. }
  10. }

(但请注意可选项)

猜你在找的iOS相关文章