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语句中的代码>。这是故意的吗?如果是这样的话,你为什么不让这件事发生呢。我可以很好地解释为什么if语句中的代码没有被执行
什么是CoreDataHelper
?如果它是一个帮助管理与CoreData交互的自定义类,那么请确保在CoreDataHelper
类中正确实现了上下文。删除(对象)
在CoreDataHelper
中,您应该是这样的:
- 获取需要删除的记录
- 标记要删除的记录
- 保存更改
您在哪里填充self.collectionExpensesDelete?我认为它的空值是使用如下核心数据填充的:var collectionExpensesDelete=[Expense]({didSet{tableView.reloadData()}}}我认为您只是使用Expense类型的空数组进行初始化,你在哪里设置它里面的值,并确认它在循环之前是否为空添加打印(self.collectionExpensesDelete.count)并查看它是否打印0它返回3,但我的费用没有被删除。你能发布self.collectionExpensesDelete的示例数据吗