2017-02-10 69 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