【发布时间】:2020-03-02 13:08:33
【问题描述】:
好的,我知道我不能修改 Realm Object 的结果。
那么什么是更改数据的最佳方法。
首先我将所有 Realm 数据作为结果获取
let m = Month.getAllEntriesByDateAsc()
现在我需要遍历所有数据来修改它。 (这是一个重新计算整个表格数据的函数。)
所以我想遍历数据并执行以下操作:
for i in m {
var d = i
// perform calculations like
d.value = 9999
}
我想对d做所有的修改。
这些是我可以用来从 Realm 数据中创建新可食用对象的某种映射吗?
以前我做过这样的事情:
for i in m {
let d = Month()
d.value = i.value
d.status = i.status
}
但现在有很多变数。
我需要什么来将 Realm 对象更改为 Model 对象?
而且 .toArray() 的东西在循环中不起作用?不知道为什么。
谢谢。
【问题讨论】:
-
你的 for 循环有什么问题?您可能应该将它放在
write块中,但除此之外,它看起来非常好。 -
无法修改领域对象的结果。 不正确。结果包含领域对象 - 可以在写入循环内轻松修改这些对象。此外,这不是一个计算 `d.value = 9999* 它是一个赋值,如果 d 不是由领域管理的,它也可以在写循环之外进行修改。这个问题有点含糊,我们不知道您的 Realm 对象是什么样子,所以目前任何答案都是猜测。
-
例如,我只是使用了“9999”。我只需要找到一种方法将信息放入新的模型对象中,以便可以修改数据并且可以从 Realm 中解放出来。我需要循环从 Results
进入 Month() 。谢谢你的帮助。 -
有没有办法用键值做一个循环(映射)?那也很好。
-
你需要澄清这个问题!你的 Realm 模型是什么样的?您可以轻松地制作可以修改的 Realm 对象的非托管副本,但同样,了解模型的外观将有助于我们了解您正在尝试做什么,以便我们制定答案。此外,在 cmets 中回复时,请使用 @ 符号回复 - 这将通知我们您已回复。比如@diogenes。