2015-10-08 129 views
0

我不斯威夫特EXC_BAD_INSTRUCTION評估布爾比較

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    if (homeChosen == true && section > 0 && indexChosen + offset == section) { 

EXC_BAD_INSTRUCTIONcode = EXC_1386_INVOP_subcode 0x0 

理解上的方法第一行此崩潰。

homechosen被定義爲

var indexChosen = 0 
var homeChosen:Bool! at the top of the class 

這是爲什麼崩潰?

隔離到:

   if (indexChosen + offset == section) { 

比較,如果an Int + Int == Int崩潰。 indexChosen爲0.

+0

indexChosen和offset的值和類型是什麼? –

+0

也許'homeChosen'是零 – nRewik

+0

是的,哇。布爾人決定不是假而不是假。直觀。 – quantumpotato

回答

0

基於錯誤,我猜測indexChosen和/或offset的值不是你所期望的,並且附加語句導致翻轉發生。如果崩潰是在與另外,see my answer to this question行發生

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    let newIndex = indexChosen + offset 
    if (homeChosen == true && section > 0 && newIndex == section) { 

:您可以通過if語句去掉數學和檢查,看看是否崩潰的數學特別情況驗證這一點。