[XCODE] NSIndexPathとは?作り方や使い方も
今日は、iPhoneアプリ開発ネタでNSIndexPathを扱いたいと思います。
UITableViewなどを使うと、メソッドの引数などに頻繁に登場するNSIndexPath。 最初はなかなかなじめなかったNSIndexPath君。最近やっと扱えるようになったので、 その使い方や作り方をブログに記載したいと思います(*゚▽゚)ノ
Indexという文字があるので、番号を示しているんです。一番分かりやすい説明は、 「アウトライン上の位置情報」でした。
例えば、以下のようなアウトラインを例に説明します。
Objective-Cは添字は0から始まりますので、NSIndexPathで表すと、「section=1, row=1」を保持する NSIndexPathとなります。
なお、NSIndexPathが保持できる階層は2階層より深い階層も持てますが、iOSで使う場合の多くは、2階層までで 十分のため、上記の例で記載致しました。
作り方は、簡単です。作成したいセクションと行を指定して、NSIndexPathを作成出来ます。
続いて、NSIndexPathの使い方ですが、セクションと行をそれぞれ別々に取得出来ます。
*1 「section」「row」プロパティと「indexPathForRow:inSection:」メソッドが追加されています。
今後も活用して、またブログに書ける有益な情報があれば記載したいと思います。
最後までお読み頂きましてありがとうございました。
UITableViewなどを使うと、メソッドの引数などに頻繁に登場するNSIndexPath。 最初はなかなかなじめなかったNSIndexPath君。最近やっと扱えるようになったので、 その使い方や作り方をブログに記載したいと思います(*゚▽゚)ノ
NSIndexPathとは
NSIndexPathとは何か、これがなかなか最初理解出来なかった。Indexという文字があるので、番号を示しているんです。一番分かりやすい説明は、 「アウトライン上の位置情報」でした。
例えば、以下のようなアウトラインを例に説明します。
- 1章
- 1-1節
- 1-2節
- 1-3節
- 2章
- 2-1節
- 2-2節 ☆
- 3章
- 3-1節
- 3-2節
- 3-3節
Objective-Cは添字は0から始まりますので、NSIndexPathで表すと、「section=1, row=1」を保持する NSIndexPathとなります。
なお、NSIndexPathが保持できる階層は2階層より深い階層も持てますが、iOSで使う場合の多くは、2階層までで 十分のため、上記の例で記載致しました。
NSIndexPathの作り方、使い方(iOS限定)
NSIndexPathの作り方と使い方を記載します。 ここで記載している方法は、iOS用に拡張されたNSIndexPathであり、MaxOSでは使えませんので、ご注意ください。 詳細は、NSIndexPath UIKit Addtionsを参照ください。作り方は、簡単です。作成したいセクションと行を指定して、NSIndexPathを作成出来ます。
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:1 inSection:1];上記例では、2セクション目の2行目を指すNSIndexPathとなります。
続いて、NSIndexPathの使い方ですが、セクションと行をそれぞれ別々に取得出来ます。
// indexPathは上記で作成したindexPath int section = indexPath.section; int row = indexPath.row; NSLog("section=%d, row=%d", section, row); // section=1, row=1iOS用に拡張されたNSIndexPath(*1)は、このように便利に使うことが出来ます。
*1 「section」「row」プロパティと「indexPathForRow:inSection:」メソッドが追加されています。
最後に
NSIndexPathはなかなかとっつきづらいですが、使えるようになると便利なものと感じています。今後も活用して、またブログに書ける有益な情報があれば記載したいと思います。
最後までお読み頂きましてありがとうございました。