For loop 我的for循环内容不';我不能马上被处决

For loop 我的for循环内容不';我不能马上被处决,for-loop,swift3,For Loop,Swift3,我有以下代码 if editingStyle == .delete{ let refreshAlert = UIAlertController(title: "Delete Collection", message: "All expenses in this collection will also be lost.", preferredStyle: UIAlertControllerStyle.alert) refreshAlert.addAction(U

我有以下代码

if editingStyle == .delete{
        let refreshAlert = UIAlertController(title: "Delete Collection", message: "All expenses in this collection will also be lost.", preferredStyle: UIAlertControllerStyle.alert)

        refreshAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action: UIAlertAction!) in
            let collection = self.collections[indexPath.row]
            CoreDataHelper.deleteCollection(collection: collection)

            for expense in self.collectionExpensesDelete{
                print ("deleted")
                if expense.collection! == self.collections[indexPath.row].title{
                    CoreDataHelper.deleteExpense(expense: expense)
                }
            }
            self.collections.remove(at: indexPath.row)
            self.collections = CoreDataHelper.retrieveCollections()
        }))
我要做的是删除集合时关联的所有费用。但是,在中间的for循环中,我放置在它上的断点没有被调用。只调用“for”语句上的初始断点,不调用其中的任何代码,包括delete语句


谁能告诉我我做错了什么

对于您在上面发布的代码,没有理由不执行for循环

expense.collection存在潜在问题。这是故意的吗?如果是这样的话,你为什么不让这件事发生呢。我可以很好地解释为什么if语句中的代码没有被执行

什么是
CoreDataHelper
?如果它是一个帮助管理与CoreData交互的自定义类,那么请确保在
CoreDataHelper
类中正确实现了
上下文。删除(对象)

CoreDataHelper
中,您应该是这样的:

  • 获取需要删除的记录
  • 标记要删除的记录
  • 保存更改

您在哪里填充self.collectionExpensesDelete?我认为它的空值是使用如下核心数据填充的:var collectionExpensesDelete=[Expense]({didSet{tableView.reloadData()}}}我认为您只是使用Expense类型的空数组进行初始化,你在哪里设置它里面的值,并确认它在循环之前是否为空添加打印(self.collectionExpensesDelete.count)并查看它是否打印0它返回3,但我的费用没有被删除。你能发布self.collectionExpensesDelete的示例数据吗