NSIndexPathクラス
INDEX>Foundation>NSIndexPath
解説
順序の配列が階層になったクラスです。
継承 | NSObject |
準拠 | NSObject (NSObject) |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能 | Mac OS X v10.4以降 |
iOS 2.0以降 | |
定義 | NSIndexPath.h |
概要
本クラスについて
順序の配列が階層になったクラスです。iOSではUITabeleViewのセルの位置の指定などに使われます。第一階層の3番目・第二階層の5番目であれば"3.5"と表されます。
作成
インデックスパスを作成
インデックスからインデックスパスオブジェクトを作成するには(+ indexPathWithIndex)メソッドを使います。C配列からインデックスパスオブジェクトを作成するには(+ indexPathWithIndexes:length)メソッドを使用します。
allocで作成した後、インデックスからインデックスパスオブジェクトを初期化するには(– initWithIndex)メソッドを使います。C配列からインデックスパスオブジェクトを初期化するには(– initWithIndexes:length)メソッドを使用します。
C配列から作成するサンプル
#pragma mark NSIndexPath indexPathWithIndexes: -(void)method003 { NSUInteger integer[5] ; integer[0] = 10; integer[1] = 10; integer[2] = 10; integer[3] = 10; integer[4] = 10; NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:integer length:5]; NSLog(@"%s %@",__FUNCTION__,indexPath); }
インデックスパスのクエリ
指定した位置のインデックスを取得するには(– indexAtPosition)メソッドを使用します。インデックスパスの長さを取得するには(– length)メソッドを使用します。
インデックスパスオブジェクトの末尾に新しいインデックスを追加した新しいインデックスパスオブジェクトを取得するには(– indexPathByAddingIndex)メソッドを使用します。インデックスパスオブジェクトの最後の要素を除去した新しいインデックスパスオブジェクトを取得するには(– indexPathByRemovingLastIndex)メソッドを使用します。
指定した位置のインデックスをC配列で取得したい場合は(– getIndexes)メソッドを使用します。
C配列でインデックスを取得するサンプル
#pragma mark NSIndexPath getIndexes: -(void)method008 { NSUInteger integer[5] ; integer[0] = 10; integer[1] = 20; integer[2] = 30; integer[3] = 40; integer[4] = 50; NSIndexPath* indexPath = [NSIndexPath indexPathWithIndexes:integer length:5]; NSUInteger indexes[5]; [indexPath getIndexes:indexes]; NSLog(@"%s %u",__FUNCTION__,indexes[1]); }
インデックスパスの比較
レシーバと別のインデックスパスを比較するには(– compare)メソッドを使用します。
適合するプロトコル
メソッド
インデックスパスの作成
+ indexPathWithIndex
+ indexPathWithIndexes:length
– initWithIndex
– initWithIndexes:length
サブクラス化の注意