Swift Realm,以正确的方式加载预先填充的数据库?
发布时间:2020-12-14 05:48:06 所属栏目:百科 来源:网络整理
导读:我对ios开发很新. 我按照这个migration example来使用预先填充的数据库并稍微更改代码 这是我在AppDelegate上使用的最终代码 – 功能应用程序 let defaultPath = Realm.Configuration.defaultConfiguration.path! let path = NSBundle.mainBundle().pathForR
我对ios开发很新.
我按照这个migration example来使用预先填充的数据库并稍微更改代码 这是我在AppDelegate上使用的最终代码 – >功能应用程序 let defaultPath = Realm.Configuration.defaultConfiguration.path! let path = NSBundle.mainBundle().pathForResource("default",ofType: "realm") if let bundledPath = path { print("use pre-populated database") do { try NSFileManager.defaultManager().removeItemAtPath(defaultPath) try NSFileManager.defaultManager().copyItemAtPath(bundledPath,toPath: defaultPath) } catch { print("remove") print(error) } } 我在一个真实的设备中测试它. 它可以工作,但根据代码逻辑,它将始终重置为预先填充的数据库.这已经过验证:应用程序重启后数据会重置. 我尝试了moveItemAtPath而不是copyItemAtPath.权限错误 我试图在复制后删除预先填充的数据库文件.权限错误 我尝试使用预先填充的数据库文件作为领域默认配置路径.也发生错误.
是的,你的逻辑是正确的.每次执行此代码时,Documents目录中的默认Realm文件都将被删除,并替换为app bundle附带的静态副本.这是通过Realm示例代码中的设计完成的,以便在每次启动应用程序时演示迁移过程.
如果您只希望这种情况发生一次,最简单的方法是事先检查Realm文件是否已存在于默认路径中,然后仅在尚未存在时才执行复制. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |