Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何将预填充的Default.realm文件放到设备上?_Ios_Swift_Realm - Fatal编程技术网

Ios 如何将预填充的Default.realm文件放到设备上?

Ios 如何将预填充的Default.realm文件放到设备上?,ios,swift,realm,Ios,Swift,Realm,我有一个领域文件,已经填充了应用程序加载到设备上时需要的数据 我可以做些什么来将realm文件放到我的设备上进行测试?当有人从应用商店下载应用程序时,我需要做些什么来确保它已经存在 我正在使用Swift。您必须首先创建要随应用程序一起提供的领域文件。一旦你有了它,将它添加到你的应用程序的Xcode项目中,并将其复制到捆绑包中(Xcode应该自动完成这项工作) 此时,应用程序应该能够访问捆绑文件(您可以使用它获取路径) 您可以在此路径上创建只读域(请参阅),也可以将其复制到Documents目录以

我有一个领域文件,已经填充了应用程序加载到设备上时需要的数据

我可以做些什么来将realm文件放到我的设备上进行测试?当有人从应用商店下载应用程序时,我需要做些什么来确保它已经存在


我正在使用Swift。

您必须首先创建要随应用程序一起提供的领域文件。一旦你有了它,将它添加到你的应用程序的Xcode项目中,并将其复制到捆绑包中(Xcode应该自动完成这项工作)

此时,应用程序应该能够访问捆绑文件(您可以使用它获取路径)

您可以在此路径上创建只读域(请参阅),也可以将其复制到Documents目录以创建读写域文件


有关如何执行此操作的详细信息,请参阅我们的。将数据库文件添加到Xcode项目,即“preload.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)

这里有一个指向我正在使用的swift的通用代码的链接,我发现翻译objective-CAPI文档非常困难。你能更具体地说明我如何完成我的任务吗?(很抱歉,我之前没有说明我使用的是swift。)我的答案是使用swift方法和初始值设定项,因为我从您的几个其他问题中知道您使用的是swift方法和初始值设定项。yoshyosh的回答也是正确的,并且有内联示例代码,这应该足以让您继续。我应该在运行虚拟iOS设备时这样做,还是在连接真实设备的情况下运行它?另外,我在项目中复制文件的位置是否重要?它是否需要与AppDelegate.swift位于同一文件夹或其他位置?如果需要读/写,则其中任何一个都可以工作,它需要位于documents目录中。是的,最初您需要将它放在与AppDelegate.swift相同的位置,但是当您复制它时,您可以将它放在其他位置,我不知道为什么,但这对我不起作用。我将填充的default.realm文件与其余代码放在同一文件夹中。当我运行应用程序时,它仍然有一个空域。请注意,我复制了您的代码并将其粘贴到应用程序didFinishLaunchingWithOptions块内的appdelegate.swift文件中,但不在迁移块之外。我还将“preload.realm”更改为“default.realm”。知道我做错了什么吗?确保在第一次放入文件时选择“添加到”目标