如何从Coredata加载UIStepper值?

时间:2017-03-19 20:28:13

标签: uitableview core-data swift3 uistepper

我在我的项目中使用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
    }

1 个答案:

答案 0 :(得分:0)

我看不到您设置UIStepper s值的位置。在tableView(_:cellForRowAt:)实施中,您需要这样的内容:

cell.stepperV.text = String(task.stepper)
cell.stepper2.value = task.stepper