Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 在不重新启动应用程序的情况下更改领域文件_Ios_Swift_Realm - Fatal编程技术网

Ios 在不重新启动应用程序的情况下更改领域文件

Ios 在不重新启动应用程序的情况下更改领域文件,ios,swift,realm,Ios,Swift,Realm,我目前正在使用dropbox备份Realm数据库文件,当我需要恢复时,我只需删除旧文件,然后将dropbox中的新文件放回原处,但要工作,我需要重新启动应用程序。 因此,我正在寻找一种避免重新启动应用程序的方法。您可以按照Realm在文档中建议的方式删除当前文件: 然后将当前领域置零,将新文件写入文件系统中的正确位置,并创建一个新领域实例。然后重新加载UI以显示新数据 您还必须注意,您的代码在删除前一个域中的对象之前没有保留对该域中对象的引用。如果当前域出现错误,请建议我如何将其置为零。另外,请

我目前正在使用dropbox备份Realm数据库文件,当我需要恢复时,我只需删除旧文件,然后将dropbox中的新文件放回原处,但要工作,我需要重新启动应用程序。
因此,我正在寻找一种避免重新启动应用程序的方法。

您可以按照Realm在文档中建议的方式删除当前文件:

然后将当前领域置零,将新文件写入文件系统中的正确位置,并创建一个新领域实例。然后重新加载UI以显示新数据


您还必须注意,您的代码在删除前一个域中的对象之前没有保留对该域中对象的引用。

如果当前域出现错误,请建议我如何将其置为零。另外,请建议我如何删除对对象的所有引用。谢谢@ManuelNil不能分配给类型'Realm'@Manueli这是Swift中的非可选属性吗?通过将其置零,我的意思是删除引用,这样它就会被释放,这样你就可以使属性的类型为'Realm?',或者只给它分配一个新实例,这样前一个实例就消失了--只要小心,你会得到一个新实例,如果你使用默认的Realm配置,我可以想象它会返回相同的实例。至于删除对领域对象的所有引用,您还可以将它们设置为可选的,当需要重置领域堆栈时,请确保它们在实际删除领域文件之前都变为零。是的,这是swift中的非可选属性。而给它分配一个新实例将不起作用。所以,我只是想知道如何重置领域堆栈或删除对领域对象的所有引用,并确保它们都变为零@ManuelHey Kevin!!你能解决这个问题吗?嘿@Bean先生,我解决不了这个问题。我已经尝试了很多方法,我已经浏览了领域文档,但如果不重新启动应用程序,这是不可能的。