如何更新Core Data中的现有对象?

pab*_*blo -2 core-data nsmanagedobject ios swift

我想更新Core Data中的对象.这是我的代码:

var detailTaskModel: TaskModel!
detailTaskModel.date = dateFromDP         //update value

let appDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
appDelegate.saveContext()
Run Code Online (Sandbox Code Playgroud)

我正在使用NSFetchedResultsController和Swift.

更新:

var fetchedResultsController: NSFetchedResultsController = NSFetchedResultsController()
Run Code Online (Sandbox Code Playgroud)

我的func用于加载CoreData数据:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    var cell: TaskCell = tableView.dequeueReusableCellWithIdentifier("myCell") as TaskCell

    let thisTask = fetchedResultsController.objectAtIndexPath(indexPath) as TaskModel
    cell.textLabel?.text = thisTask.task
    return cell
}
Run Code Online (Sandbox Code Playgroud)

保存CoreData:

let appDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
let entityDescription = NSEntityDescription.entityForName("TaskModel", inManagedObjectContext: managedObjectContext!)
let task = TaskModel(entity: entityDescription!, insertIntoManagedObjectContext: managedObjectContext!)
task.task = labelText
Run Code Online (Sandbox Code Playgroud)

Abu*_*Dar 5

您只需更新Core数据对象的任何属性,并在NSManagedObjectContext上调用save.您还可以使用hasChanges方法检查任何更改.

 managedObject.setValue("newValue", forKey: "propertyName") 
Run Code Online (Sandbox Code Playgroud)

像上面一样更新您的对象或直接调用分配并执行以下操作

if let moc = self.managedObjectContext {
   var error: NSError? = nil
   if moc.hasChanges {
       !moc.save(&error)
   }
}
Run Code Online (Sandbox Code Playgroud)