0
我正在用swift练习我的数组结构。EXC_BAD_INSTRUCTION(code = EXC_I386_INVOP,sub code = 0x0)。在制作数据结构时出错
我做了一个类 “学生”
,并有像显示功能()和delete()
但是,应用程序无法正常工作。
有一个错误消息
EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码=为0x0)。
我认为这个错误是关于 “可选” 的问题。
这是我的代码。
class student
{
var studentArray = [[String]?]()
var numberOfStudents : Int = 10;
func display()
{
for (var i = 0; i < numberOfStudents ; i++)
{
print("{");
for (var j = 0; j < 2; j++)
{
print(studentArray[i]![j] + " ");
}
print("}");
}
}
func delete(value : String)
{
var i = 0
for (i = 0; i < numberOfStudents ; i++)
{
if (value == studentArray[i]![1])
{
break;
}
}
if (i == numberOfStudents - 1)
{
print("not found");
}
else
{
for (var k = i; k < numberOfStudents - 1 ; k++)
{
studentArray[k]![1] = studentArray[k+1]![1];
studentArray[k]![0] = studentArray[k+1]![0];
}
numberOfStudents--;
}
}
}
var hello = student()
hello.studentArray = [["0","0ee"],["9","9ee", ]]
hello.display() // I have a error at this point
hello.studentArray
任何人都可以解释什么是对我来说?
有在你的代码的几个误区。实际的错误是由你的'numberOfStudents'变量引起的,该变量被硬编码为10,即使该数组只包含2个元素。在'for'循环中使用'studentArray.count',而不是10.然后阅读Swift手册。在本例中,您不应该使用可选项或C样式循环。 – Grimxn