我已經搜索了其他問題,並詢問這是因爲我找不到適合我的任何東西。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