我已经搜索了其他问题,并询问这是因为我找不到适合我的任何东西。Swift:如何在didSelectRowAtIndexPath时更新核心数据中的数据?
我在核心数据中有一些数据,并且想要在调用didSelectRowAtIndexPath
时更新它。这是我的代码
class ViewController: UIViewController, UITableViewDelegate {
var todo = [NSManagedObject]()
var JSON = Data.sharedInstance
@IBOutlet var TableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.JSON.JSONData {
SVProgressHUD.dismiss()
self.TableView.reloadData()
}
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedobject = appDelegate.managedObjectContext
let fetchrequest = NSFetchRequest(entityName: "ToDo")
do {
let results = try managedobject.executeFetchRequest(fetchrequest)
todo = results as! [NSManagedObject]
} catch {
print("error")
}
TableView.reloadData()
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return todo.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let state = todo[indexPath.row].valueForKey("state") as? Float
print(state)
if state == 0.0 {
cell.textLabel?.text = todo[indexPath.row].valueForKey("name") as? String
}
return cell
}
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
}
现在,当didSelectRowAtIndexPath
被调用时,我想更新密钥“状态”,可以在cellForRowAtIndexPath
可以看出,以1.0
有人一个能请我如何更新“状态”的值。谢谢
您是否尝试过'let object = todo [indexPath.row] object.setValue(yourValue,forKey:“state”)''然后用主要上下文保存。 – Santosh
在任何其他情况下,您都会更新Core Data。 –
@Santosh应该在didSelectRowAtIndexPath中添加代码吗? – raja