macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

NSIndexPathクラス

INDEX>Foundation>NSIndexPath

apple(OS X)
apple(iOS)

解説

順序の配列が階層になったクラスです。

継承 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)メソッドを使用します。

適合するプロトコル

サブクラス化の注意