Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么我的Swift for in循环没有执行/迭代?_Ios_Swift - Fatal编程技术网

Ios 为什么我的Swift for in循环没有执行/迭代?

Ios 为什么我的Swift for in循环没有执行/迭代?,ios,swift,Ios,Swift,我正在尝试删除与CoreData模型关联的NSManagedObject数组。我正在为我的属性所属的类创建一个新实例,并尝试删除其中的每个项。关于我做错了什么有什么线索吗 func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { if editingStyl

我正在尝试删除与CoreData模型关联的NSManagedObject数组。我正在为我的属性所属的类创建一个新实例,并尝试删除其中的每个项。关于我做错了什么有什么线索吗

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
。如果有人想知道我为什么会遇到这个问题,请查看下面的答案。谢谢赫尔曼的帮助!