更新核心数据功能(swift)的位置

更新核心数据功能(swift)的位置,swift,core-data,setvalue,Swift,Core Data,Setvalue,我对如何更新核心数据做了一些研究,找到了setValue()函数 我现在正挣扎着在哪里调用这个函数。显然,当数据发生变化时,我会称之为: if (textField.text != detail!.valueForKey("name")!.description { detail?.setValue(textField.text, forKey: "name") } 我要把这个放在哪里? 我怀疑它是否属于viewDidLoad和c

我对如何更新核心数据做了一些研究,找到了setValue()函数

我现在正挣扎着在哪里调用这个函数。显然,当数据发生变化时,我会称之为:

if (textField.text != detail!.valueForKey("name")!.description {
        detail?.setValue(textField.text, forKey: "name")
    }
我要把这个放在哪里? 我怀疑它是否属于viewDidLoad和configureView。 这是我的detailViewController文件

文本字段为:

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
}

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

传递作为UITableViewCell子类的textField如下所示:


希望这会有所帮助。

当值更改为textField时,是否要设置值?当textField中的值更改时,我要设置值。textField当前持有valueForKey()。因此,请尝试UItextField函数的委托方法textfielddendediting({textField:UItextField){}不直接相关,但
setValue:forKey/valueForKey
在泛型
NSManagedObject
类型中已过时。使用子类和点表示法。别忘了保存上下文以应用更改。通常我认为这是可行的,但是textField=cell.textField。我已经更新了这个问题,包括什么是textField。
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")
    }
    }
}