首先,我正在检查self.statisticsArray.count == 0我是否创建了新记录,否则我正在更新现有值.当我创建一个新对象时,一切正常,但是当我尝试更新存在的对象时,它会在下一个错误时崩溃:
Attempting to modify object outside of a write transaction - call beginWriteTransaction on an RLMRealm instance first
Run Code Online (Sandbox Code Playgroud)
但我在一个.write区块内完成所有这一切,为什么会出现这样的错误?我读过如果我使用.write(),那么我不需要关闭交易.任何人都可以形容我崩溃的原因吗?
if self.statisticsArray.count == 0 {
self.statistics.summary = 250
try! self.realm.write({
self.realm.add(self.statistics)
self.realm.add(record)
})
} else {
if day == self.statisticsArray.last?.date {
try! self.realm.write({
self.realm.objects(Statistics).last?.summary += 250
self.realm.add(record)
})
} else {
try! self.realm.write({
self.statistics.summary = (self.statisticsArray.last?.summary)! + 250
self.realm.add(self.statistics)
self.realm.add(record)
})
}
}
Run Code Online (Sandbox Code Playgroud)
yos*_*osh 19
self.statistics.summary = 250需要在写入事务中.它应该如下所示:
if self.statisticsArray.count == 0 {
try! self.realm.write({
self.statistics.summary = 250
self.realm.add(self.statistics)
self.realm.add(record)
})
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12426 次 |
| 最近记录: |