gpt4 book ai didi

ios - CoreData 似乎保存了错误的变量

转载 作者:可可西里 更新时间:2023-11-01 02:13:15 25 4
gpt4 key购买 nike

我正在尝试调试以下代码。

1) CellClass有IBAction改变Bool值,声明的值为value: Bool

@IBAction func dashBrnPressed(_ sender: AnyObject) {
value == true ? (value = false) : (value = true)
NotificationCenter.default.post(name: .reload, object: nil)
// reloads the TableView
}

2) 我将 UITableView Controller 与 dequeueReusableCell 一起使用并获取 CoreData。这些线只负责细胞。 “switchAction”是来自 CoreData 的值

 if cell.value == true{
switchAction.isOn = true

}else{
switchAction.isOn = false

}

DataBaseController.saveContext()
cell.value = switchAction.isOn

return cell

3) 除非我重新启动应用程序,否则它似乎可以正常工作。没有崩溃,但它默认返回 FALSE 值。我需要根据按钮的语句将值返回 存储到 CoreData。

代码当然是简化了。

最佳答案

我想我看到了问题所在。在第 2 部分下的代码块中,您将执行以下操作:

  1. switchAction.isOn 设置为 cell.value 的值
  2. 保存switchAction.isOn到CoreData
  3. cell.value 设置为 switchAction.isOn 的值

当您重新启动您的应用程序时,cell.value 默认为 false,然后您将该 false 覆盖到 switchAction.isOn 并将其保存回 CoreData。因此,即使 switchAction.isOn 可能加载了正确的值,您也会在看到它之前覆盖它。

您需要的是相反方向的作业:

cell.value = switchAction.isOn

由于 cell 是一个可重用的表格 View 单元格,您可以将该行放在您的 tableView(UITableView, willDisplay: UITableViewCell, forRowAt: IndexPath) 委托(delegate)函数中,它是在显示单元格之前调用。

关于ios - CoreData 似乎保存了错误的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390898/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com