我的for循环内容不会被迅速执行3

时间:2017-09-05 09:07:39

标签: 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(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语句。

谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:-1)

上面发布的代码没有理由不执行for循环。

if语句强制解包时,expense.collection!存在潜在问题。这是故意的吗?如果是这样的话,为什么你不保护 我可以很好地解释为什么 if语句中的代码没有被执行。

什么是CoreDataHelper?如果它是帮助管理与CoreData交互的自定义​​类,请确保您已在context.delete(object)类中正确实施CoreDataHelper

CoreDataHelper你应该是这样的:

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