【发布时间】:2017-06-05 05:19:43
【问题描述】:
这是我的Realm 对象:
class AchievementDate : Object {
dynamic var date: Date = Date()
dynamic var apple: Int = Int(0)
func save() {
do {
let realm = try Realm()
try realm.write {
realm.add(self)
}
} catch let error as NSError {
fatalError(error.localizedDescription)
}
}
}
我在 View 控制器的 viewDidLoad() 方法中更改了苹果的值,如您所见:
override func viewDidLoad() {
super.viewDidLoad()
achievementDate.apple = 2
achievementDate.save()
}
然后当用户单击屏幕上的暂停按钮时,我会更新苹果的值,如下所示:
@IBAction func pausedButtonTapped(_ sender: UIButton) {
achievementDate.apple += 1
achievementDate.save()
}
Xcode 运行成功,但是当我单击暂停按钮时,应用程序崩溃了。在控制台中它说:
*** 由于未捕获的异常“RLMException”而终止应用程序,原因:“尝试在写入事务之外修改对象 - 调用 首先在 RLMRealm 实例上开始写事务。'
我对此很困惑,顺便说一句,交易一般是什么意思?非常感谢。
【问题讨论】: