我在我的项目中使用CoreData,我有uitableview,在每个单元格中我都有UIStepper。现在我可以在CoreData中保存UIStepper值,例如当我点击+它工作正常并将新值保存在CoreDate中时,当我重新启动我的应用程序时,我可以看到我的最后一个uistepper值,但是当我点击+它将会显示星号1,不是我的最后一个值,它会将新值保存在CoreData中。
如何从核心数据加载最后一个值并使我的UIStepper从此值开始计数(核心数据中的最后一个值)
我的功能
func stepper2 (sender: UIStepper){
let appD = UIApplication.shared.delegate as! AppDelegate
let context = appD.persistentContainer.viewContext
//save the object
let aa = Tasks[sender.tag]
aa.stepper = (sender.value)
do {
try context.save()
print("updated!")
print (aa)
print("stepper \(sender.tag) clicked. Its value \(sender.value)")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
} catch {
}
}
///////////////////
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! TableViewCell
let task = Tasks[indexPath.row]
cell.stepper2.tag = indexPath.row
cell.stepper2.addTarget(self, action: #selector(stepper2(sender: )), for: .valueChanged)
cell.ggg.text = task.mytext
cell.stepperV.text = String(task.stepper)
return cell
}
答案 0 :(得分:0)
我看不到您设置UIStepper
s值的位置。在tableView(_:cellForRowAt:)
实施中,您需要这样的内容:
cell.stepperV.text = String(task.stepper)
cell.stepper2.value = task.stepper