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さんのデータがあるかどうかを確認してくだい
関連記事
-
for文の便利な使い方
for文を使って繰り返し実行させる場合、基本的には数値を使ってループさせます。 …
-
ステータスバーを隠す方法
Deployment Info の Status Bar Style 下部にある …
-
UIButton 同時押し制御
UIButton *myBtn = [UIButton alloc] init] …
-
UIView
タイトル画面の背景など、新たにビューを追加した場合 UIViewを生成し sel …
-
SubViewの重ね順を変更する
SubViewの重ね順を最前面に移動する場合 bringSubviewToFro …
-
よく使うショートカット
Ctrl+6 : 表示中のクラスのメソッド一覧 さらにテキスト入力してインクリメ …
-
UIImageViewにボタンを貼りたい場合
タイトル画面などを作りたい場合、UIImageViewを使用して背景などを作るこ …
-
UILabelをコードで生成(Tips付)
Main Storyboard (IB)に用意されている Label を使わずに …
-
Xcode6 GameCenter 実装
Xcode6(iOS7以上)でのGameCenter実装 検索であまり見つからな …
-
配列にNSNumberをぶちこむ
配列から数値を直に取り出したい場合はどうするのかと調べてみたのでメモ。 NSNu …
- PREV
- タッチイベント:有効・無効
- NEXT
- for文の便利な使い方