领域的新手。我修改了一下,制作了一些模型,玩了一些测试数据,现在我更新了我的模型(添加了一些属性,删除了一些其他的,更改了一些现有的)并且想要完全删除我的领域文件,所以我可以从新的开始基于新模型的testdata。不知何故,我不能只删除该文件。
只需使用
试试吧! realm.write { realm.deleteAll() }
在realm.unsafeMutableAddressor
let realm = try! Realm()
内崩溃
尝试通过Realm Browser删除所有内容,我找不到任何删除整个架构的按钮?我只能删除某些对象..
尝试通过以下方式删除它:
试试吧! FileManager.default.removeItem(at:realm.configuration.fileURL!)
在与1相同的错误消息中再次崩溃。
为了“从头开始”,我到底需要做什么?这花费了我大约一个小时,用这3种不同的方式尝试。有什么想法吗?
谢谢!
编辑:我真的不知道发布什么代码给你任何材料猜测。我应该发布什么以获得有关该问题的更多有用信息?答案 0 :(得分:1)
如果您正在更改架构并且不想担心执行Realm迁移,仅仅删除Realm中的所有对象是不够的。您需要从磁盘中删除Realm文件并重新开始。
如果您要删除Realm文件,则需要在首次调用Realm()
之前执行此操作,因为Realm随后会在该点之后将该实例的副本保留在内存中(这可以通过将实例创建放在@autoreleasepool
块中来缓解。
出于调试目的,每次需要迁移时删除Realm的最简单方法是在Realm的deleteRealmIfMigrationNeeded
对象中将true
设置为Configuration
。
var configuration = Realm.Configuration()
configuration.deleteRealmIfMigrationNeeded = true
Realm.Configuration.defaultConfiguration = configuration
let realm = try! Realm()
如果要自己显式删除默认Realm文件,则需要通过直接引用默认配置中的文件URL来执行此操作。如果您创建了一个Realm()
实例,然后从中提取fileURL
属性,则已经太晚了。
var configuration = Realm.Configuration()
let defaultURL = configuration.fileURL
try! FileManager.default.removeItem(at: defaultURL)
let realm = try! Realm()
如果您需要对这些问题进行任何澄清,请与我们联系。感谢您尝试Realm! :)