领域 – 添加具有初始数据项目的文件(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并调用它 @H_502_10@func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { ... openRealm() return true } func openRealm() { let defaultRealmPath = Realm.defaultPath let bundleReamPath = NSBundle.mainBundle().resourcePath?.stringByAppendingPathComponent("default.realm") if !NSFileManager.defaultManager().fileExistsAtPath(defaultRealmPath) { NSFileManager.defaultManager().copyItemAtPath(bundleReamPath!,toPath: defaultRealmPath,error: nil) } }

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

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

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

@H_502_10@let defaultRealmPath = Realm.Configuration.defaultConfiguration.fileURL! let bundleRealmPath = Bundle.main.url(forResource: "seeds",withExtension: "realm") if !FileManager.default.fileExists(atPath: defaultRealmPath.absoluteString) { do { try FileManager.default.copyItem(at: bundleRealmPath!,to: defaultRealmPath) } catch let error { print("error copying seeds: \(error)") } }

(但请注意可选项)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...