Swift 使用协议从集合视图单元格中删除coredata

Swift 使用协议从集合视图单元格中删除coredata,swift,core-data,uicollectionview,protocols,uicollectionviewcell,Swift,Core Data,Uicollectionview,Protocols,Uicollectionviewcell,下面的代码通过delete按钮从索引中删除一个字符串。但是,它不是从核心数据集中删除的。如果视图被刷新,则集合中的所有项目仍然存在。我想要的是,当用户点击delete函数时,该字符串将被永久删除。这是我的代码的下载链接 您还必须从核心数据堆栈中删除该项(context是NSManagedObjectContext实例) 你能解释一下这一行吗?我想要的是,当用户点击delete函数时,该字符串将被永远删除。当我点击delete按钮时,它不会从索引中删除该项,而只是将其隐藏。当我刷新视图时,该项仍然

下面的代码通过delete按钮从索引中删除一个字符串。但是,它不是从核心数据集中删除的。如果视图被刷新,则集合中的所有项目仍然存在。我想要的是,当用户点击delete函数时,该字符串将被永久删除。这是我的代码的下载链接


您还必须从核心数据堆栈中删除该项(
context
NSManagedObjectContext
实例)


你能解释一下这一行吗?我想要的是,当用户点击delete函数时,该字符串将被永远删除。当我点击delete按钮时,它不会从索引中删除该项,而只是将其隐藏。当我刷新视图时,该项仍然存在。所以说set={a,e,c}。我删除了e集,它只应该是{a,c}。现在我的代码没有删除e。您的示例代码不适用于我的MACA。每当您对核心数据
ManagedObjectContext
进行更改时,您必须保存您的上下文以应用所做的更改。这个答案已经包含在里面了,我只是想强调一下。我试着完全按照你的编码来做。它不工作,我更新了我的链接。你能看看链接吗?
 var users = [Item]()
class cell: UICollectionViewCell {
    var delegateA: datacollectionProfotocol?
    var index : IndexPath?
    @IBOutlet var name : UILabel!
    @IBAction func show() {

    }
    @IBAction func delete() {
       delegateA?.deleteData(indx: (index?.row)!)
    }
}

protocol datacollectionProfotocol {

func deleteData(indx:Int)
}
extension ViewController : datacollectionProfotocol {


func deleteData(indx: Int) {
    users.remove(at: indx)
    block.reloadData()
}
func deleteData(indx: Int) {
    let userToRemove = users.remove(at: indx)
    context.delete(userToRemove)
    do {
        try context.save()
        block.reloadData()
    } catch { print(error) }
}