我正在使用搜索功能的iPhone應用程序,在UISearchBar中編寫搜索條件更改(篩選器)下面的UITabelView的輸出。Iphone搜索欄清除按鈕崩潰的應用程序
當用戶正在編輯的搜索欄的內容,並刪除所有的文字,下面的代碼在
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
if([searchText isEqualToString:@""] || searchText==nil){
[tableData removeAllObjects]; //clear array that holds data for table view
[tableData addObjectsFromArray:tumorNames]; //load array with database
[searchTableView reloadData];
return;
}
}
(method continues...)
現在執行的搜索欄裏面進行編輯時,這工作得很好:你是否刪除所有帶退格/刪除的文本或按下「清除」按鈕無關緊要 - 清除搜索字段,並在表格視圖中顯示所有可搜索項目。按下「取消」按鈕也是一樣,但是在這種情況下,搜索欄會自動退出第一個響應者。
但是,當搜索完成並且一個或多個結果項目顯示在表格視圖中(搜索欄已經退出第一個響應者並且鍵盤消失)時,仍然可以按清除按鈕,但結果是應用程序以下消息崩潰:
'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (0) beyond bounds (0)'
看來,這個問題是表視圖數據的重新裝載內,但我不知道爲什麼會有與陣列的在一種情況下,但不是索引的問題在另一個。
任何人都知道爲什麼會發生這種情況?所有幫助讚賞。
格雷戈爾, 瑞典
[searchBar resignFirstResponder];做的伎倆 – Souljacker 2013-02-13 08:54:27