【发布时间】:2016-02-17 16:36:31
【问题描述】:
首先,我检查self.statisticsArray.count == 0 是否创建新记录,否则我将更新现有值。当我创建一个新对象时,一切正常,但是当我尝试更新现有对象时,它会崩溃并出现下一个错误:
Attempting to modify object outside of a write transaction - call beginWriteTransaction on an RLMRealm instance first
但是我在一个.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)
})
}
}
【问题讨论】: