42

1 つ以上のノードを持つインデックス パスを作成するクラス メソッドは次のとおりです。

+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length

最初のパラメーターで必要な「インデックス」を作成するにはどうすればよいですか?

ドキュメントには、インデックス パスを構成するインデックスの配列として記載されていますが、(NSUinteger *) が必要です。

1.2.3.4 のインデックス パスを作成するには、単に [1,2,3,4] の配列ですか?

4

4 に答える 4

61

あなたは正しいです。次のように使用できます。

NSUInteger indexArr[] = {1,2,3,4};

NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexArr length:4];
于 2008-10-08T19:32:12.827 に答える
44

iOS では、NSIndexPath UIKit Additions (UITableView.h で宣言)からこのメソッドを使用することもできます。

+ (NSIndexPath*) indexPathForRow:(NSUInteger)row inSection:(NSUInteger)section
于 2009-05-06T11:31:11.860 に答える
7

あなたの仮定は正しいです。NSUIntegerのC配列と同じくらい簡単です。長さパラメーターは、インデックス配列内の要素の数です。

Cの配列は、多くの場合、長さパラメーターを持つポインター(この場合はNSUInteger *)、またはC文字列(単なるchar配列)の場合は\0などの既知のターミネーターとして識別されます。

于 2008-10-08T05:14:21.763 に答える
4

これを2行のコードで行いました

 NSMutableArray *indexPaths = [[NSMutableArray alloc] init];   
 for (int i = firstIndexYouWant; i < totalIndexPathsYouWant; i++) [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];

短く、きれいで、読みやすい。無料のコードです。ノックしないでください。

于 2015-09-10T20:28:23.700 に答える