2017-02-10 53 views
0

我正在实例化变量labels04中的UITextField的数组。我循环做一些计算。计算后,我尝试使用数组的索引来进一步计算我的算法,但得到了错误的指令错误。卡在算术运算错误

@IBOutlet var labels04: [UITextField]! 
    var gpacalc1:Int = 0 
    var gpacalcDivide:Int = 0 
    var convertIndexGPA:Int = 0 

上线

gpacalcDivide = gpacalculate/convertIndexGPA 

我得到一个线程1:EXC_BAD_INSTRUCTION(CODE = EXC_I386_INVOP,子码为0x0)

buttonContext 
    { 
    for label:UITextField in labels04 { 


    //calculations ... 

    gpacalculate = gpacalculate + gpacalc! 
    convertIndexGPA = labels04.index(of: label)! 
    gpacalcDivide = gpacalculate/convertIndexGPA 
    gpaTotalCalc.text! = "GPA: \(gpacalcDivide)" 
    } 
    } 

我相信这与使用labels04.index做(的:标签)!命令。尽管它在控制台中显示为整数,但是当我尝试将该值用于算术运算时,系统会收到错误指示错误提示。

有没有办法呢?谢谢

+0

请记住,使用'!'操作符意味着“在这里崩溃”。了解可选项和安全解包。 – rmaddy

回答

2

在for循环的第一次迭代期间,labels04.index(of: label)!应该等于0(即第一个索引),所以在下一行 - gpacalcDivide = gpacalculate/convertIndexGPA - 您将除以0,这会导致错误。

+1

哈哈,你是对的 – BestGiraffeNigeria