Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
Arrays 致命错误:索引超出范围?但是是吗?_Arrays_Swift - Fatal编程技术网

Arrays 致命错误:索引超出范围?但是是吗?

Arrays 致命错误:索引超出范围?但是是吗?,arrays,swift,Arrays,Swift,我有一个非常奇怪的数组,我不确定我遗漏了什么,我确定是非常简单的东西。这是我的代码,这段代码使用对象和变量数组循环一个结构,并试图找到category=1的对象,如果这是真的,它会将对象数组发送到另一个数组中。一切正常,直到我尝试将数组复制到排序数组中,代码中有更多注释。我试图在用户单击某个类别时对tableView进行排序,4个可能的类别是1,30,31,32(不要问为什么) 在不深入研究代码结构以及如何以更“快速”的方式编写代码的情况下,我可以看出问题在于,这不是在Swift中附加到数组的好

我有一个非常奇怪的数组,我不确定我遗漏了什么,我确定是非常简单的东西。这是我的代码,这段代码使用对象和变量数组循环一个结构,并试图找到category=1的对象,如果这是真的,它会将对象数组发送到另一个数组中。一切正常,直到我尝试将数组复制到排序数组中,代码中有更多注释。我试图在用户单击某个类别时对tableView进行排序,4个可能的类别是1,30,31,32(不要问为什么)


在不深入研究代码结构以及如何以更“快速”的方式编写代码的情况下,我可以看出问题在于,这不是在Swift中附加到数组的好方法

            let currentNoSortedCourses = sortedCourses.count
            sortedCourses[currentNoSortedCourses] = courses[count]
这是访问一个超出范围并导致崩溃的索引。要在Swift中附加到数组,请使用
append
方法

        sortedCourses.append(courses[count])
当我在这里的时候,我可能会告诉你一个更好的方法(一行)来解决你的问题,可能是这样的

    sortedCourses = courses.filter { $0.categories.contains(1) }

你真正的问题是什么?问题是什么?是的,如果你越界了,那就是越界了。你的一行代码工作起来很神奇,非常感谢,你让我的代码看起来很古老!哦,天哪,如果我知道我不需要通过这种逻辑来提前编写所有代码的话
        sortedCourses.append(courses[count])
    sortedCourses = courses.filter { $0.categories.contains(1) }