2015-07-21 37 views
-1

我有一个方法(内容如下)其中queue2只是一个[Int]。我印了很多东西,看看是否一切正在进行中。索引不工作的快速数组设置值

public func cool(item: Int) { 
    println(item) 
    println(back) 
    //queue2.insert(item, atIndex: back) 
    queue2[back] = item 
    println(queue2.description) 
    println("done") 
} 

问题是在运行时失败,我不知道为什么。 Apple文档说,你可以使用这种表示法设置数组中任何索引的值,但它不起作用。如果我取消注释注释行并注释掉它下面的注释行,那么一切运行良好,但它不提供我需要的功能。是什么赋予了?

+0

它停止执行与exc_bad_instruction(代码= exc_i386_invop子码=为0x0) –

+0

背面= 0,队列被启动以一个阵列容量20 –

回答

1

如果queue2是空的,这条线是非法的,无论什么back是:

queue2[back] = item 

您不能引用不存在的索引,以及一个空数组没有索引(索引) 。

+0

至于当您使用'queue2.insert(项目,atIndex会发生什么:back)',这里的问题是你说“它不提供我需要的功能”,但是你没有解释什么是功能_is_。该代码正在做你正在要求它做的事情;既不知道,也不知道你可能想到的是什么...... – matt