NSArray valueForkeypath関数
2014/11/02
NSArrayやNSDictionaryを多用する人にお勧めです
CoreDataやSQLiteを使うとどうしてもNSArrayとNSDictionaryを多用することになると思うので、
ほとんど全員が対象です
NSArrayとNSDictionaryを多用するときは大抵がNSArrayの中にNSDictionaryがたくさん入っている形だと思います
例えばarrayというNSArrayオブジェクトにデータが入っているとします
(
{
name = "wicket";
id = 1;
},
{
name = "oyabunn";
id = 2;
},
{
name = "apple";
id = 3;
},
)
この中から「いきなりid=1のデータを取り出したい!」と言うとき、id順に並んでいると仮定してNSArrayの objectAtIndex 関数を使って取り出すと思います。もしこれを
「name = “apple” の人を取り出したい!」の場合は?
この関数を使うと、NSArrayに使うとそのキーのものだけを一覧で取り出してくれます具体的には[array valueForKeyPath:@”name”];
とすると、返り値は
(
"wicket",
"oyabunn",
"apple"
)
となります
[[array valueForKeyPath:@”name”] indexOfObject:@”apple”];
で簡単にappleさんのデータが入ったIndex番号がわかります[array objectAtIndex:[[array valueForKeyPath:@”name”] indexOfObject:@”apple”]];
とかけば1行でappleさんのデータが取り出せますプログラムの簡略化はバグの発生率を下げますので、このような技術を使ってみてはいかがしょうか?
[array objectAtIndex:[[array valueForKeyPath:@”name”] indexOfObject:@”apple”]]
のままでは、appleさんのデータがなかったときに例外が投げられてエラーで終了します
appleさんのデータがあるかどうかを確認してくだい
関連記事
-
-
よく使うショートカット
Ctrl+6 : 表示中のクラスのメソッド一覧 さらにテキスト入力してインクリメ …
-
-
CheatSheet
Xcodeの便利なショートカットキー 良く使ってるなと感じたら追記 Cmd+Al …
-
-
アプリの名前をつける
iPhoneのホーム画面に表示される「アプリ名」の付け方 アプリ名の変更には上 …
-
-
NSLog まとめ
デバッグする時などに、ログを出力する方法としてNSLogを使用します。 文字列を …
-
-
UIViewの背景画像をフィットさせたい
UIViewは(UIImageViewとは違い)背景画像のサイズをフィットする機 …
-
-
テキストの文字間を詰める
UILabelなどで文字間を詰める(カーニング)したい時がちょいちょいあると思い …
-
-
UIImageView 画像の差し替え
[UIImageView alloc] 後の画像を変換する時は下記コードを参照し …
-
-
負の数を絶対数へ変換 abs
負の数を自然数(マイナスを含まない数字)にしたくて、「Xcode 自然数 変換」 …
-
-
UIButton 同時押し制御
UIButton *myBtn = [UIButton alloc] init] …
-
-
UIView
タイトル画面の背景など、新たにビューを追加した場合 UIViewを生成し sel …
- PREV
- タッチイベント:有効・無効
- NEXT
- for文の便利な使い方
