我有以下代码
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语句。
谁能告诉我我做错了什么?
答案 0 :(得分:-1)
上面发布的代码没有理由不执行for循环。
if语句强制解包时,expense.collection!
存在潜在问题。这是故意的吗?如果是这样的话,为什么你不保护 我可以很好地解释为什么 if语句中的代码没有被执行。
什么是CoreDataHelper
?如果它是帮助管理与CoreData交互的自定义类,请确保您已在context.delete(object)
类中正确实施CoreDataHelper
。
在CoreDataHelper
你应该是这样的: