2011-02-17 156 views
0

安裝Xcode 3.2.5 iOS 4.2後,完美工作的應用程序停止工作。我已經看到,這發生在其他人身上,但不知道如何解決它。升級到iOS 4.2後iPhone應用程序無法運行

我的問題是: 1.我怎麼知道它在哪裏崩潰? 2.我能做些什麼來更好地調試和查明問題。

這是調用堆棧。

Call Stack

湯米感謝您的回答。我已經構建並運行並提出建議,但是當它崩潰時,它不會顯示它崩潰的位置。此外,我在該方法內部添加了一個斷點,但它並沒有停在那裏。還有什麼想法?這是代碼片段。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
ApplicationData *appdata = [ApplicationData sharedInstance]; 
if(appdata.currentCategoryIndex >= 0) { 
    Category *category = [appdata.categoryList objectAtIndex:appdata.currentCategoryIndex]; 
    if(category.records) { 
     [lab_norecords setHidden:YES]; 
    } else { 
     [lab_norecords setHidden:NO]; 
     return 0; 
    } 
    return [category.records count]; 
} 
return 0; 

}

enter image description here

現在我收到此錯誤:

enter image description here

我認爲,問題的根源就在這裏在同一subCategoryView:

- (id)init { 
if([[NSBundle mainBundle] loadNibNamed:@"SubCategoryView" owner:self options:nil]) { 
    //if(self = [super initWit]) 
    cellowner = [[TableCellOwner alloc] init]; 
    [listTableView setBackgroundColor:[UIColor clearColor]]; 
    [listTableView setSeparatorColor:[UIColor whiteColor]]; 
    [listTableView initialize]; 
} 
return self; 

}

回答

3

從你有的蹤跡,看看第二欄。你的應用程序中最近的事情是在第四行(編號爲'3'的那一行)對SubCategoryView numberOfSectionsInTableView:的調用。觸發的異常是NSRangeException,您嘗試從其中包含22個對象的數組中檢索對象4294967295。 4294967295是如何-1看起來,如果你投了32位簽約數的無符號數,所以出於某種原因,你正在做的事情,如:

NSInteger variable = -1; 
[array objectAtIndex:variable]; 

某處SubCategoryView的numberOfSectionsInTableView內。最佳直接猜測:4.1和4.2之間的某些變化會導致您使用任何方法填充表以提供錯誤的結果。

要從這裏前進,請確保您正在執行調試構建並使用command + y啓動(或轉至構建,構建和運行 - 斷點開啓)。當這次你的程序崩潰時,應該出現調試窗口,顯示你的程序到底是哪一行引發異常,並允許你檢查當時所有程序變量的狀態。調試器還可以讓你放置斷點,一次一行地執行你的程序和所有其他常見的事情。

+0

@Tommy我編輯了我的文章,你可以看看看看你是否可以得到進一步的幫助?我被卡住了。 – ldj 2011-02-20 12:32:38

相關問題