2011-06-23 64 views
35

基本上我在NSInteger中存儲數組的索引。我現在需要它作爲一個NSIndexpath,我努力看到並找到一種方法將我的NSInteger轉換爲NSIndexpath,以便我可以重用它。將NSInteger轉換爲NSIndexpath

+0

你需要什麼的'NSIndexPath'呢?你需要一個'UITableView'嗎? – albertamg

+0

它在調用sqlite的更新語句時使用。我想我現在轉換爲NSIndexPath,但我需要NSIndexPath.row,並引發錯誤。有任何想法嗎? – Dan

+0

您可以**不**在使用'indexPathWithIndex:'創建的索引路徑上調用'row'。要創建一個索引路徑,你可以調用'row',你可以使用'indexPathForRow:inSection:'。 – albertamg

回答

86

對於int index

NSIndexPath *path = [NSIndexPath indexPathWithIndex:index]; 

創建的項目的索引在節點0至點爲每the reference

要在UITableView使用indexPath,更合適的方法是

NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section]; 
+0

謝謝。我還可以做路徑行嗎?還是我讓我的突擊者穿過? – Dan

3

使用下面的方法NSIndexPath類。下面還

+ (id)indexPathWithIndex:(NSUInteger)index; 
+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length; 
- (id)initWithIndex:(NSUInteger)index 

使用用後不要忘了releasemyIndexPath對象。

NSIndexPath *myIndexPath = [[NSIndexPath alloc] initWithIndex:[myIntObj intValue]]; 
7

如果你需要一個UITableView一個NSIndexPath,你可以使用indexPathForRow:inSection:reference)。傳遞給表視圖的索引路徑必須包含恰好兩個指定節和行的索引。使用indexPathWithIndex:創建的索引路徑僅包含一個索引,並且不會與表視圖一起使用。

2

斯威夫特3:

let indexPath = IndexPath(row: 0, section: 0)