Ios 为什么我的Swift for in循环没有执行/迭代?
我正在尝试删除与CoreData模型关联的NSManagedObject数组。我正在为我的属性所属的类创建一个新实例,并尝试删除其中的每个项。关于我做错了什么有什么线索吗Ios 为什么我的Swift for in循环没有执行/迭代?,ios,swift,Ios,Swift,我正在尝试删除与CoreData模型关联的NSManagedObject数组。我正在为我的属性所属的类创建一个新实例,并尝试删除其中的每个项。关于我做错了什么有什么线索吗 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if editingStyl
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
// THIS FOR IN LOOP WILL NOT EXECUTE...
for x in DrilledDownCategoryViewController().categoryItemsItems {
println("^^^")
managedObjectContext?.deleteObject(x as NSManagedObject)
}
// EVERYTHING ELSE WILL THOUGH...
println("asdfjkl;")
let logItemToDelete = categoryItems[indexPath.row]
managedObjectContext?.deleteObject(logItemToDelete)
self.fetchCategory()
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Automatic)
save()
}
}
for in循环不会执行空数组
只要这样做,您就不会从另一个类中遇到空的fetchresults数组:如果您试图访问CoreData项的fetchresults数组;不要依赖于从另一个类访问数组。只需获取特定的谓词筛选项并将它们注入新数组。您可以从中更改或删除它们…DrilledDownCategoryViewController是一个类。
DrilledDownCategoryViewController()是它的构造函数。
使用DrilledDownCategoryViewController()
可以创建视图控制器的新实例,而不是访问“正在运行”的实例。
当然,一个新对象的相关数组(或者其他任何数组)要么是nil,要么是它在构造函数中设置的值
如果您习惯了Objective-C,那么您就是这样做的:
[[[DrilledDownCategoryViewController alloc] init| categoryItemsItems]
Obj-C forin循环也不会重复一次 我习惯于编写JavaScript lol。你能告诉我正确访问“running”类属性值的写入方向吗?不太可能。显然,您的代码片段来自某个表视图控制器。这就是DrilledDownCategoryViewController,还是它们之间的关系?如果它是一个,那么使用self.categoryItemsItems
访问它,或者只使用categoryItemsItems
。如果有人想知道我为什么会遇到这个问题,请查看下面的答案。谢谢赫尔曼的帮助!