我有一个已填充了在设备上加载应用时需要存在的数据的域文件。
我可以做些什么来将realm文件放到我的设备上进行测试?当有人从应用商店下载应用时,我该怎么做才能确保它已存在?
我正在使用Swift。
答案 0 :(得分:7)
将您的数据库文件添加到Xcode项目中,即" preloaded.realm" 首次删除文件时,请确保选择添加到目标
然后(从迁移示例中获取)您可以执行类似这样的操作,将预加载的文件复制到默认目录。这将创建一个读/写域
// copy over old data files for migration
let defaultPath = RLMRealm.defaultRealmPath()
let defaultParentPath = defaultPath.stringByDeletingLastPathComponent
let v0Path = NSBundle.mainBundle().resourcePath!.stringByAppendingPathComponent("preloaded.realm")
NSFileManager.defaultManager().removeItemAtPath(defaultPath, error: nil)
NSFileManager.defaultManager().copyItemAtPath(v0Path, toPath: defaultPath, error: nil)
以下是该常规代码https://github.com/realm/realm-cocoa/blob/master/examples/ios/swift-2.2/Migration/AppDelegate.swift
的链接答案 1 :(得分:3)
您首先必须创建要随应用一起提供的领域文件。完成后,将其添加到应用程序的Xcode项目中并将其复制到捆绑包中(Xcode应自动执行)。
此时,应用应该能够访问捆绑的文件(您可以使用NSBundle.mainBundle().pathForResource(_:ofType:)来获取路径)。
您可以在此路径中创建只读域(请参阅RLMRealm(path:readOnly:error:)),或将其复制到Documents目录以创建读写域文件。
您应该参考我们的migration example了解有关如何执行此操作的更多详细信息。