想要在编辑后更新数据

时间:2018-02-16 19:47:08

标签: swift

我想在编辑后更新数据。因为我需要以前的数据。 但在我编辑后的情况下,保存前一个值的变量将被当前值替换。 我怎么能保持以前的值?

 if itemToEdit == nil{
        item = TestDataModel()

    else{
        item = itemToEdit
        selectedItemToEdit = itemToEdit
      //  print(selectedItemToEdit?.title)
         print(item.title)
      //  print(itemToEdit?.title)
    }

    if let title = titleField.text {
        item.title = title
        print(item.title)
    }
  //  print(selectedItemToEdit.title!)
    print(itemToEdit?.title!)

    if let price = pricefield.text {
        item.price = (price as NSString).doubleValue
        print(item.price)
    }

    if let details = detailsField.text {
        item.details = details
        print(item.details)
    }

itemToEdit,是我想要编辑/更新的内容。这就是我将它存储在selectedItemToEdit中的原因。在项目中,我已经在编辑后存储了数据。 我需要我在文本字段中输入的先前值和当前值。 我怎么能得到那个。请任何一个帮助......

2 个答案:

答案 0 :(得分:1)

当您尝试保存以前的信息时,您正在做的只是创建一个指向同一对象的新变量。当对象发生变化时,使用哪个变量检查​​它并不重要,您将看到该对象的变化。

这是一个游乐场示例,可以让您了解两个对象与两个指向同一对象的指针之间的区别。

class MyData {
    var title = "Default"

    init() {
    }

    init(source: MyData)
    {
        title = source.title
    }
}

var d1 = MyData()
var d2 = d1
var d3 = MyData(source: d1)
d1.title = "changed"

print(d2.title)
print(d3.title)

答案 1 :(得分:0)

是的,我解决了这个问题: 我刚刚声明了一个字符串类型的变量:

  var selectedItemToEdit: string!
  selectedItemToEdit = itemToEdit.title

我将该字符串类型变量和编辑过的变量传递给了保存函数。