从CoreData中删除特定条目

时间:2015-07-05 19:33:53

标签: ios swift core-data nsmanagedobjectcontext

我在核心数据中存储了一个新条目,如下所示:

    let context = self.fetchedResultsController.managedObjectContext
    let entity = self.fetchedResultsController.fetchRequest.entity!
    let newManagedObject = NSEntityDescription.insertNewObjectForEntityForName(entity.name!, inManagedObjectContext: context) as! NSManagedObject
    newManagedObject.setValue("Test1", forKey: "name")

    // Save the context.
    var error: NSError? = nil
    if !context.save(&error) {
        abort()
    }

我的问题是如何在没有UITableViewCell的indexPath的情况下删除条目(例如Test1)?

更新:

fetchRequest:

    let context = self.fetchedResultsController.managedObjectContext
    let fetchRequest = NSFetchRequest(entityName:"Person")
    fetchRequest.predicate = NSPredicate(format: "name = %@", name)
    var error : NSError?
    let results = managedObjectContext!.executeFetchRequest(fetchRequest, error:&error)

1 个答案:

答案 0 :(得分:3)

在您的情况下,您可以通过执行以下操作删除对象:

context.deleteObject(newManagedObject)

如果您需要从代码中的某个位置删除对象,而该对象中没有对托管对象本身的引用,则可以基于例如在其名称属性上,然后将其删除。

这是您获取名称与name匹配的所有MO的方法:

let fetchRequest = NSFetchRequest(entity: entityName)
fetchRequest.predicate = NSPredicate(format: "name == %@", name)
let results = context.executeFetchRequest(fetchRequest, error: &error)