从 Core Data Swift 4 中删除

Med*_*Man 3 core-data swift

我有一个收藏夹按钮,单击该按钮会将特定角色的图像添加到 CoreData。

@IBAction func favButtonClicked(_ sender: UIButton) {
    if sender.isSelected != true {
        saveFav()
    }     
}   

func saveFav() {

    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    let newFav = NSEntityDescription.insertNewObject(forEntityName: "Favorite", into: context)
    newFav.setValue((figure?.image)!, forKey: "favFig")

    do {
        try context.save()
        print("Saved!")
    } catch {
        //Process Error
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如何在再次单击按钮时从 CoreData 中删除该图像?

Sh_*_*han 6

在 coredata 中,如果你想删除它,每个对象都应该有 Id,就像这样

let fetchRequest: NSFetchRequest<Favorite> = Favorite.fetchRequest()
fetchRequest.predicate = Predicate.init(format: "FavoriteID==\(ID)")

do {
    let objects = try context.fetch(fetchRequest)
    for object in objects {
        context.delete(object)
    }
    try context.save()
} catch _ {
    // error handling
}
Run Code Online (Sandbox Code Playgroud)