哪里放置更新核心数据功能(swift)

时间:2018-05-15 05:29:42

标签: swift core-data setvalue

我已经对如何更新核心数据进行了一些研究,并且我找到了setValue()函数。

我现在正在努力调用此功能。显然我会在数据发生变化时调用它:

if (textField.text != detail!.valueForKey("name")!.description {
        detail?.setValue(textField.text, forKey: "name")
    }

我会把它放在哪里? 我怀疑它属于viewDidLoad和configureView。 这是我的detailViewController文件。

textField是:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! TextFieldTableViewCell
    let textField: UITextField = cell.textField
    let detail = self.detailItem

    textField.text = detail!.valueForKey("name")!.description
    return cell
}

解决

textFieldDidEndEditing()解决了检查值是否已更改并保存的问题。

传递一个作为UITableViewCell子类的textField在此解决:How to call textField that is a inside of UITableViewCell (swift)

1 个答案:

答案 0 :(得分:0)

class ViewController: UIViewController,UITextFieldDelegate {

    @IBOutlet weak var txtName: UITextField!
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        txtName.delegate = self
    }

func textFieldDidEndEditing(_ textField: UITextField) {
        print("Tells the delegate that editing ends for specific textfield")

if (textField.text != detail!.valueForKey("name")!.description {
        detail?.setValue(textField.text, forKey: "name")
    }
    }
}

希望这会有所帮助..