2012-09-26 34 views
0

我正在做一個View,它包括兩個tableviews,其中一個是self.tableView,另一個是searchDisplayController.searchResultsTableView來顯示搜索結果。代碼如下:來自兩個TableView之間的numberOfRowsInSection函數的錯誤

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    if (tableView == self.searchDisplayController.searchResultsTableView) { 
     return [searchResultArray count]; 
    } else if (tableView == self.tableView){ 
     return [menuItems count]; 
    } } 

的問題是,我知道回報[的菜單項計數]值是10,而且如果[searchResultArray計數]返回值大於10大,我會得到下面的錯誤信息:

2012-09-26 17:11:50.332 searchResultArray count:80 
2012-09-26 17:11:50.337 *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 10 beyond bounds [0 .. 9]' 

但是,如果[searchResultArray count]的返回值小於10,則它工作正常。如何解決這個問題? 請指教!謝謝!

+0

什麼方法崩潰?它看起來像問題不在numberOfRowsInSection – Vladimir

+0

我認爲'cellForRowAtIndexPath'你想要顯示'self.searchDisplayController.searchResultsTableView''menuItems'數組的內容。確保你正在檢查'cellForRowAtIndexPath'中的'tableView',並顯示適當數組中表格的內容。 –

回答

-1

確保兩個tableviews作爲iMeMyself說你應該分配的動態原型,兩者的tableview被設置爲「動態原型」

0

如果您正在使用接口建設者檢查TableViewController

應該有一個「表視圖」您的視圖控制器下。

在表視圖的屬性檢查器中檢查「內容」,如果其分配了「動態原型」或「靜態單元格」?

將其更改爲「動態原型」。

0

問題出在您的搜索方法中,每次運行搜索邏輯並將對象添加到searchArray中時,都需要在開始添加之前從中清除對象。您可以使用

[searchResultArray removeAllObjects]; 
0

。因爲當數據源方法調用它時會動態地檢查tableview。所以分配給它動態的原型。

相關問題