在哪里放置更新核心数据函数(swift)
Where to place update core data function (swift)
我研究了如何更新核心数据,并找到了 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
}
已解决
textFieldDidEndEditing() 解决了检查值是否改变并保存的问题。
传递作为 UITableViewCell 子类的文本字段在此处解决:
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")
}
}
}
希望这会有所帮助..
我研究了如何更新核心数据,并找到了 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
}
已解决
textFieldDidEndEditing() 解决了检查值是否改变并保存的问题。
传递作为 UITableViewCell 子类的文本字段在此处解决:
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")
}
}
}
希望这会有所帮助..