2012-09-04 29 views
1

行的數量我想在一個NSIndexPath部分的行數。對於我在這裏搜索蘋果的文檔&我找不到如何得到這個值。它的任何線索?如何獲得在NSIndexPath部分

我的具體目的是用它來確定所選行是否是該段最後一行,所以如果任何人有確定通過另一種手段,這將是良好的建議。

+0

在如此迅速的答案數量驚喜。感謝所有:) – Pedro

回答

5

這裏是我如何做到這一點在我的情況:

錶款保持存儲在NSArray對象的列表,因此行的部分是數組中的對象的量量。在你的情況 - 如果行不是從數組對象 - 只是做檢查

if ([indexPath row] + 1 == [_objectsArray count]) { 
    ... 

但是,如果在表中的項目沒有一個集合中舉行,您可以輕鬆地只是通過調用相應的檢索部分的行數在tableView對象方法在didSelectRow..委託方法:

NSInteger numberOfRows = [tableView numberOfRowsInSection:[indexPath section]]; 
+1

我喜歡使用數組數的解決方案,但不應該是[indexPar row] == [_objectsArray count] - 1? – Pedro

+0

謝謝!錯字固定。 – Eimantas

6

的唯一方法是問表的數據源:

NSUInteger rowCount = [tableView.dataSource tableView:tableView numberOfRowsInSection:indexPath.section]; 
+0

假。這不是唯一的方法。 UITableView持有'dataSource'的高速緩存值的適當方法。 – Eimantas

+0

@Eimantas:當然有無數種方法來檢索結果。我的意思是,沒有辦法從索引路徑中獲得它。也許我沒有足夠清楚。 –

+0

我會提供「canonical」一詞來代替「only」。別的是要麼作爲@Eimantas所暗示的,這一高速緩存器,或在其周圍的醜陋的黑客攻擊,其太密地耦合到所述數據模型。 –

2

你可以調用UITableViewDataSourcetableView:numberOfRowsInSection:方法,將部分號碼。然而,這是你自己的代碼產生基於什麼是模型中的這個數字,所以它可能是有意義的看看tableView:numberOfRowsInSection:在數據源的實現,看看是否可以通過備用路徑得到相同的答案。

+0

謝謝,在這種情況下IndexPath是一個TableView的這將工作。 – Pedro

+0

@Pedro你沒有了'IndexPath'傳遞給'的tableView:numberOfRowsInSection:',只有部分數量。您可以查看有多少部分有通過調用'numberOfSectionsInTableView:',但同樣的答案是通過在'UITableViewDataSource'自己的代碼產生的,所以你可能想看看那裏。 – dasblinkenlight

+0

是的,我通過[indexPath節]傳遞節號。 – Pedro

1

如果你在一個UITableView談論,你可以問它的數據源,這是有點可能是你自己:-)

[self.tableView.dataSource tableView: self.tableView numberOfRowsInSection: indexPath.section]; 

// or, if you are the dataSource... 
[self tableView: self.tableView numberOfRowsInSection: indexPath.section]; 
10

一切都在文檔

numberOfRowsInSection:

int rows = [table numberOfRowsInSection:indexPath.section]; 
+0

我同意一切都在文檔中,但有時他們可能是一個噩夢找到;) – Pedro

+0

@Pedro掛在那裏。一旦你學習了方言和結構,它們就很容易導航(如果你知道命名約定,那麼可以高度搜索):-) –

相關問題